Вопросы с тегом 'metaclass'

В объектно-ориентированном программировании метакласс является классом, экземпляры которого являются классами. Подобно тому, как обычный класс определяет поведение определенных объектов, метакласс определяет поведение определенных классов и их экземпляров. Не все объектно-ориентированные языки программирования поддерживают метаклассы.
1 отв.

практический пример определения использования метакласса, например, установки его в ABCMeta или LoggingType

Пример установки метакласса на LoggingType i, LoggingType на моем рабочем месте. import logging as _logging class SomeClass(object): __metaclass__ = _logging.LoggingType Вот пример, который я видел для ABCMeta установленного для __metaclass__ ...
17 апр. '15 в 9:12
3 отв.

Неожиданное поведение setattr() внутри Metaclass __init__

Вот базовый Metaclass предназначенный для предоставления пользовательского __init__: class D(type): def __init__(cls, name, bases, attributes): super(D, cls).__init__(name, bases, attributes) for hook in R.registered_hooks: ...
07 июня '18 в 19:32
1 отв.

GroovyCastException метакласса i18n

Этот вопрос связан с другим. Я хотел бы добавить свойства к конструктору и перезаписать функцию getLocalizedMessage(), чтобы получить правильное переведенное сообщение с ошибкой. Сначала я хочу перегрузить конструктор для установки свойств, но когда...
02 февр. '16 в 16:03
1 отв.

Как python создает класс с использованием атрибутов в списке параметров функции __new __()?

Я хочу знать, как __new__ функция типа __new__, как она может создать класс с использованием параметров attr. например: class ModelMetaclass(type): def __new__(cls, name, bases, attrs): return type.__new__(cls, name, bases, attrs) cla...
11 февр. '16 в 13:36
1 отв.

Внедрить метод _del_ для класса с __getattribute__ overriden

Принимая этот вопрос как указатель, скажем, существует класс, подобный следующему: class Container(object): def __init__(self, **kwargs): self._meta = defaultdict(lambda: None) for attr, value in kwargs.iteritems(): self._m...
11 марта '16 в 1:38
2 отв.

__metaclass__ не работал при создании класса с типом ("Test", (Base,), {'__metaclass __': Meta,...})

cls = type("Test", (Base,), {"__metaclass__": Meta, "a": 1, ...}) Я хочу сделать некоторые проверки для attrs в третьем аргументе с классом Meta, но это, похоже, не сработало, есть ли другой метод?
03 июня '16 в 12:38
1 отв.

Метаклассы и методы

Добавление метода к метаклассу отлично работает в приведенном ниже примере. class Test(object): def __init__(self, x): self.x = x def double(self): return self.x*2 # method to add def quadruple(self): return self.x*4 ...
23 июня '17 в 0:56
1 отв.

Магические методы в классе

Я ищу способ вызова магических методов в экземплярах класса. В моем случае я хочу вызвать хэш на класс на основе свойств. Я нашел решение с метаклассом, но я не могу получить доступ к свойствам класса из метода метакласса. class X(type): @classm...
15 авг. '17 в 21:20
1 отв.

Какая связь между dict и attrs в python?

Я начинающий питон. Я изучал мета-класс, но я не совсем понял, как методы и атрибуты хранилища словаря? class ModelMetaclass(type): def __new__(cls, name, bases, attrs): if name=='Model': return type.__new__(cls, name, bases,...
17 сент. '17 в 15:32
1 отв.

Как изменить поведение живого объекта isinstance()?

Я хочу изменить поведение isinstance для объекта live python. Одним из решений является создание простой оболочки, такой как следующая, но мне она не нравится: class Widget: def __init__(self, obj): self.inner_self = obj lizard = ['hea...
04 марта '18 в 3:44
2 отв.

Как переопределить setattr для атрибутов класса

Я пытаюсь создать класс, в котором атрибуты класса возвращаются вместе с именем класса class TestClass: obj1 = 'hi' Т.е. я хочу следующее >>> TestClass.obj1 Out: ('TestClass', 'hi') Я знаю, что этот эффект можно получить, используя ...
27 марта '18 в 13:43
1 отв.

Лучшая практика Python для создания класса, который обертывает множество разных типов классов с одинаковой базой

Что лучше всего подходит для Python для создания класса, который обертывает много разных типов классов с одним и тем же базовым классом? В моей конкретной ситуации у меня есть базовый класс (1-й уровень), который представляет собой обобщенный фид д...
03 мая '18 в 18:52
1 отв.

Наследовать встроенный класс 'str' в python

Я пытаюсь наследовать модуль str с пользовательским типом, но при этом выдает ошибку. class MyStr(str): def __init__(self, word, idx: int=0): super().__init__() self._word = word self._idx = idx if __name__ == '__main__...
05 февр. '19 в 12:25
2 отв.

Облачные метаклассы; или изменение переменной класса класса A во время __init__ класса B, содержащего вложенные классы, наследующие от A?

Рассмотрим следующий код: class A(object): attr = None def __init__(self): assert A.attr is not None class B(object): def __init__(self, attr): A.attr = attr class C(A): def __init__(self): sup...
18 мая '18 в 23:25
2 отв.

наследование объектов в python

сегодня утром я выхожу из странного идеала. как известно, в python все объекты включают класс и функцию. Не спрашивай, почему я хочу это сделать. это эксперимент для игры вокруг питона. Я знал, что это унаследовано от экземпляра. пусть попробует: ...
22 нояб. '14 в 21:48