有没有一种方法可以在类方法中使用实例变量执行计算?
非常简化,这是我正在尝试做的事情:
class Test:
def __init__(self, a):
self.a = a
@classmethod
def calculate(cls, b):
return self.a + b
答案 0 :(得分:1)
我只想声明一个变量'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'
在类初始化时设置值:
class Foo:
print('Setting foo')
foo = 'bar'
def print_foo(self):
print(self.__class__.foo)
# => 'Setting foo'
Foo()
Foo()
Foo().print_foo() # => 'bar'
在首次实例初始化时设置值:
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'
答案 1 :(得分:0)
如果您想使用命名空间,请改用@staticmethod
并让用户传入变量,例如Test.calculate(a, b)