Интересно, есть ли способ, чтобы получить имя класса автоматически при определении атрибута класса до инициализацииполучить имя класса, прежде инициализации при определении класса
class MyClass(object):
attribute1 = 1
attribute2 = 2 # This a simple example, MyClass has many other attributes
print className # normally one would use self.__class__.__name__ but self or cls are not defined at the level
def __init__(self):
a = 1
Цель
В рамках я работаю, attribute1 и attribute2 являются объектными экземплярами (вы скажете, что все объектно ориентировано в python :)) Я хочу установить имя класса для этих атрибутов до инициализации MyClass. MyClass инициализируется много раз, и это гораздо больше, чем 2 атрибутов, что делает операцию очень много времени, чтобы сделать в каждой инициализации
Зачем вам это нужно до инициализации? Класс не будет работать до тех пор, пока он не будет инициализирован, поэтому я не вижу смысла. – asdf
Вы можете использовать метакласс - Но я точно не знаю, насколько это поможет вам, так как вы не сказали _why_ вам нужно имя класса. Возможно, если вы скажете нам, что вы на самом деле пытаетесь сделать здесь, мы можем указать вам в другом направлении. – mgilson
Непонятно, что вы пытаетесь сделать, но вы должны взглянуть на метаклассы :) – Wolph