Как я понимаю, свойство класса можно использовать в некотором смысле как статическую переменную для Python. У меня есть класс, и я бы хотел установить эту статическую переменную во время первого запуска __init__()
, т. Е. Когда создается первый объект и что-то подобное. Не обновлять его каждый раз. Что мне делать в точности? Даже установка флага не помогает.Как инициализировать переменную класса с __init __()?
class A():
foo=None
foo_set_flag=False
def __init__(self,arg_foo):
if not self.foo_set_flag:
self.foo=arg_foo
foo_set_flag=True
a=A(12)
b=A(13)
print a.foo
print b.foo
, который дает:
12
13
и, конечно, я ожидаю
12
12
Однако это решение не сработает, если имя класса изменяется и требует изменения функции. Я думаю, что мое решение лучше. –
@RamchandraApte, я не думаю, что метод '__ini__' сам по себе является классом mehtod, это не очень хорошая идея. ИМХО, делая метод разделенного класса и вызывая его из '__init__', является более разумным. – falsetru
Почему? Если вам нужно получить доступ к экземпляру, вы можете переместить части, которые должны использовать метод класса, в отдельную функцию. –