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

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

Как отслеживать ключевые слова, переданные в метакласс?

У меня есть метакласс, который принимает аргументы ключевого слова: class M(type): def __new__(cls, *args, **kwargs): print(*kwargs.items()) super().__new__(cls, *args) Работает так, как ожидалось: class A(metaclass=M, test='X...
06 мар. '18 в 21:47
0

Как я могу получить метакласс класса в Delphi 7?

Я хочу создать такое исключение, если в списке атрибутов контекстного объекта отсутствует объект: //****************************************************************************** EMissingContextObject = class (...) //******************************...
23 июл. '16 в 21:26
3

Класс, который принимает другой класс в качестве аргумента, копирует поведение

Я хотел бы создать класс в Python, который принимает один аргумент в конструкторе, другой класс Python. Экземпляр класса Copy должен иметь все атрибуты и методы исходного класса, не зная, что они должны быть заранее. Вот какой код, который почти раб...
26 июл. '16 в 22:45
1

Как работает metaclass.__ call__ в этом случае?

import inspect class meta(type): def __new__(cls, t_name, bases, argdict): print "inside meta __new__" return super(meta, cls).__new__(cls, t_name, bases, argdict) def __init__(self, t_name, bases, argdict): print "insi...
31 июл. '16 в 14:31
2

Django - метакласс

При внесении изменений в метакласс для включения unique_together и попыток makemigrations, я продолжаю получать "никаких изменений не обнаружено", которые, как я предполагаю, не ожидается. ОШИБКА № 1 Я попытался удалить миграцию для этой конкретной...
11 авг. '16 в 10:16
1

Почему я предпочитаю метакласс над наследованием от суперкласса в Python

Из того, что я узнал до сих пор, метаклассы и наследование от суперкласса в Python служат очень схожим назначением, но наследование суперкласса более мощное. Почему я предпочитаю метаклассы над наследованием суперкласса? В каком случае метакласс бы...
10 сент. '16 в 7:25
1

Метакласс Python для рандомизированных вопросов викторины

Для обучения большому классу математики полезно писать вопросы с некоторой рандомизацией, встроенной, чтобы не все студенты получали одинаковые вопросы. Мое решение состоит в том, чтобы написать короткий скрипт Python для создания нескольких вопросо...
11 сент. '16 в 5:26
1

Grails устанавливает свойства метакласса по ссылке объекта

Используя объекты домена Grails, я наткнулся на проблему, пытающуюся установить определенные свойства. var stepchild=parent.children.find{ it.id==xInt }; stepchild.metaClass.birthMom=biologicalMothersName; parent.children.each{child-> //when...
24 сент. '16 в 17:14
1

Использование метакласса для автоматического назначения переменных-членов класса

В классе Python я хотел бы автоматически назначать переменные-члены как те же, что и аргументы функции __init__, например: class Foo(object): def __init__(self, arg1, arg2 = 1): self.arg1 = arg1 self.arg2 = arg2 Я хотел бы явно...
25 окт. '16 в 14:31
1

Добавить динамическое свойство с классом в метаклассе Python

Я использую mongoengine с картой отдыха django. Моя модель: import mongoengine as mongo class Plan(mongo.Document): slug = mongo.StringField(max_length=255, primary_key=True) subplans = mongo.ListField(mongo.EmbeddedDocumentField('self')) ...
07 нояб. '16 в 12:12
1

Использование метакласса для доступа к статическим атрибутам подкласса

рассмотрите следующий код: def print_name(*args, **kwargs): cls = type(*args, **kwargs) print "hello " + cls.name return type.__new__( *args, **kwargs) class B(object): __metaclass__ = print_name name = 'animal' class C(B): ...
13 нояб. '16 в 22:29
1

Как заменить __prepare__ для метакласса в python 2

Мне нужно преобразовать некоторый код из python 3 в python 2. У меня есть метакласс, где метод __prepare__ устанавливает функцию в классе dict. Я попытался перевести на метод __new__ но я не могу настроить функцию SET_DEFAULTS. Это возможно? У меня...
19 дек. '16 в 19:18
1

метод метакласса '__call__', не вызываемый при инициализации

Я пытаюсь понять метаклассы. Я уже прочитал этот ответ, и я попытался использовать пользовательский __call__ следующим образом: #!/usr/bin/env python3 c...
13 янв. '17 в 23:37
1

Sqlalchemy динамически создает таблицу и сопоставленный класс

Учитывая набор имен столбцов и их типов, цель состоит в том, чтобы для создания экземпляра таблицы и соответствующего сопоставленного класса. Это связано с вопросом, опубликованным здесь: Создание динамического класса в SQLAlchemy. Пока у меня ес...
15 февр. '17 в 22:06
1

__getattribute__ в экземпляре и классе

У меня есть метакласс и класс, которые используют __getattribute__ для перехвата вызовов атрибутов. Они выглядят так: class B(type): def __getattribute__ (self, name) : print(f'hello {self}') return super().__getattribute__(n...
02 мар. '17 в 2:06