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

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

Что такое метаклассы в Python?

Что такое метаклассы и для чего мы их используем?
задан 19 сент. '08 в 9:10
6
ответов

класс << self idiom в Ruby

Что делает class << self в Ruby?
задан 24 марта '10 в 6:02
19
ответов

Создание синглета в Python

Этот вопрос не для обсуждения того, желателен ли дизайн шаблона singleton, является анти-шаблоном или для любого религиозного а обсуждать, как этот шаблон лучше всего реализован на Python таким образом, который является наиболее pythonic. В этом случ...
задан 20 июля '11 в 13:47
4
ответов

Как работает класс Django Meta?

Я использую Django, который позволяет людям добавлять дополнительные параметры в класс с помощью class Meta. class FooModel(models.Model): ... class Meta: ... Единственное, что я нашел в документации Python: class FooMetaClass(ty...
задан 27 апр. '12 в 5:59
17
ответов

Каковы ваши (конкретные) прецеденты для метаклассов в Python?

У меня есть друг, который любит использовать метаклассы и регулярно предлагает их в качестве решения. Я считаю, что вам почти никогда не нужно использовать метаклассы. Зачем? потому что я полагаю, что если вы делаете что-то подобное классу, вероятно...
задан 24 дек. '08 в 23:13
2
ответов

Несоответствие множественного наследования метакласса

Почему это: class MyType(type): def __init__(cls, name, bases, attrs): print 'created', cls class MyMixin: __metaclass__ = MyType class MyList(list, MyMixin): pass в порядке и работает как ожидалось: created <class '__main__.My...
задан 09 июня '10 в 7:15
2
ответов

Тройное наследование вызывает конфликт метакласса... Иногда

Похоже, я наткнулся на метаклассовый ад, даже когда я не хотел иметь с ним ничего общего. Я пишу приложение в Qt4 с помощью PySide. Я хочу отделить управляемую событиями часть от определения пользовательского интерфейса, которая создается из файлов ...
задан 02 июля '11 в 16:48
4
ответов

Ошибка при вызове баз метакласса: аргумент функции() должен быть кодом, а не str

Я попытался подклассифицировать threading.Condition ранее сегодня, но это не сработало. Вот вывод интерпретатора Python, когда я пытаюсь подклассифицировать threading.Condition class: >>> import threading >>> class ThisWontWork(thr...
задан 09 февр. '10 в 21:24
4
ответов

Есть ли причина выбирать __new__ над __init__ при определении метакласса?

Я всегда настраивал метаклассы примерно так: class SomeMetaClass(type): def __new__(cls, name, bases, dict): #do stuff here Но я просто столкнулся с метаклассом, который был определен следующим образом: class SomeMetaClass(type): ...
задан 03 дек. '09 в 18:00
7
ответов

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

Я пишу метакласс, который читает атрибуты класса и сохраняет их в списке, но я хочу, чтобы список (cls.columns) соблюдал порядок объявления (то есть: mycol2, mycol3, zut, cool, menfin, a в моем примере): import inspect import pprint class Column(o...
задан 16 дек. '10 в 13:08
1
ответ

Метаклассы Python против декораторов класса

В чем основные отличия между метаклассами Python и декораторами класса? Есть ли что-то, что я могу сделать с одним, но не с другим?
задан 22 нояб. '09 в 20:39
8
ответов

Для чего нужны метаклассы Python?

Что можно сделать с помощью метаклассов, которые не могут быть другими? Алекс Мартелли сказал, что есть задачи, которые не могут быть достигнуты без метаклассов здесь Python metaclasses vs class decorators Я хотел бы узнать, какие?
задан 05 янв. '10 в 15:12
2
ответов

Python Metaclass: Понимание 'with_metaclass()'

Я хочу спросить, что означает вызов with_metaclass() в определении класса. например:. class Foo(with_metaclass(Cls1, Cls2)): Это особый случай, когда класс наследуется от метакласса? Является ли новый класс также метаклассом?
задан 29 авг. '13 в 17:32
1
ответ

Понимание метакласса и наследования в Python

У меня есть путаница в отношении метаклассов. С наследованием class AttributeInitType(object): def __init__(self,**kwargs): for name, value in kwargs.items(): setattr(self, name, value) class Car(AttributeInitType): def ...
задан 23 июля '13 в 7:10
3
ответов

Как автоматически регистрировать класс при его определении

Я хочу иметь экземпляр класса, зарегистрированного при определении класса. В идеале код ниже мог бы сделать трюк. registry = {} def register( cls ): registry[cls.__name__] = cls() #problem here return cls @register class MyClass( Base ): ...
задан 04 марта '11 в 6:13