
zee
07.06.2019
10:49:20
подскажите, пожалуйста, как решить такую задачу, когда используется кастомный метакласс и нужно, чтобы создаваемые классы имели субкласс MutableMapping
from collections.abc import MutableMapping
class MyMeta(type):
def __new__(mcs, name, bases, attr):
return type.__new__(mcs, name, bases, attr)
class MyMutableMappingMeta(MutableMapping, MyMeta):
def __hash__(self):
return hash(tuple(self.__dict__.items()))
class MyClass(metaclass=MyMutableMappingMeta):
pass
issubclass(MyClass, MutableMapping)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File ".../venv/lib/python3.7/abc.py", line 143, in __subclasscheck__
return _abc_subclasscheck(cls, subclass)
File ".../venv/lib/python3.7/abc.py", line 143, in __subclasscheck__
return _abc_subclasscheck(cls, subclass)
TypeError: __subclasses__() missing 1 required positional argument: 'self'

zee
07.06.2019
11:14:17
1. Что за старнные библиотеки проверяют что переменная от MutableMapping произошла?
2. Кажется, это не метакласс
1. pymongo, например.
2. в 3.7
from collections.abc import MutableMapping
class MyMeta(type):
def __new__(mcs, name, bases, attr):
return type.__new__(mcs, name, bases, attr)
class Hello(MutableMapping, metaclass=MyMeta):
pass
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases

Tishka17
07.06.2019
11:51:10
А по слотам ты делал замеры?
Прям реально помогает?
Я обычно не парюсь, просто

А
07.06.2019
12:32:28
psutil
почему я могу сделать так
p = psutil.Process(i)
p.parent().name()
Но вот так
p = psutil.Process(i)
p.parent().started() вылезает ошибка

А
07.06.2019
12:40:00
но он там есть
p = psutil.Process(i)
print( p.parent() )
psutil.Process(pid=960, name='svchost.exe', started='08:30:06')