Недавно я создал класс. Предположим, что класс объявлен ниже.Python: атрибут статического класса самого класса
class MyClass(object):
def __init__(self, modifiers):
....
Проблема в том, я хочу, чтобы создать постоянные экземпляры класса:
class MyClass(object):
def __init__(self, modifiers):
....
CONSTANT_MEMBER_1 = MyClass(my_modifiers)
CONSTANT_MEMBER_2 = MyClass(my_modifiers)
К сожалению, Python не позволит мне сделать это, с ошибкой:
E NameError: global name 'MyClass' is not defined
Любое решение этой проблемы?
Один из альтернатив будет создавать «статический» метод для класса, который будет возвращать один и тот же объект при каждом его вызове (например, MyClass.CONSTANT_MEMBER_1()
). Но я думаю, что я бы предпочел получить доступ к нему, используя MyClass.CONSTANT_MEMBER_1
.
Спасибо.
Можете ли вы объяснить случай использования немного больше? «Статический атрибут или метод» имеет здесь определенное значение, но вы, похоже, используете «статический член» для ссылки на: «экземпляр класса, который никогда не изменяется» – brianpck
@brianpck да, я имел в виду ссылку на «константные экземпляры» класса ". Ред. Благодарю. – sokokaleb