все, что я хочу, это объявить переменную 'a', а затем использовать ее в методе класса для целей расчета.
Если вы хотите кэшировать значение для всего класса, этиВот ваши основные параметры:
Установите значение явно:
class Foo:
@classmethod
def set_foo(cls):
print('Setting foo')
cls.foo = 'bar'
def print_foo(self):
print(self.__class__.foo)
Foo.set_foo() # => 'Setting foo'
Foo()
Foo().print_foo() # => 'bar'
Установите значение в классе init:
class Foo:
print('Setting foo')
foo = 'bar'
def print_foo(self):
print(self.__class__.foo)
# => 'Setting foo'
Foo()
Foo()
Foo().print_foo() # => 'bar'
Установите значение в первом экземпляре init:
class Foo:
def __init__(self):
if not hasattr(self.__class__, 'foo'):
print('Setting foo')
self.__class__.foo = 'bar'
def print_foo(self):
print(self.__class__.foo)
Foo() # => 'Setting foo'
Foo()
Foo().print_foo() # => 'bar'