[英]How would an instance variable be used in a class method?
有沒有一種方法可以在類方法中使用實例變量執行計算?
非常簡化,這是我正在嘗試做的事情:
class Test:
def __init__(self, a):
self.a = a
@classmethod
def calculate(cls, b):
return self.a + b
我只想聲明一個變量“ 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'
如果要命名空間,請使用@staticmethod
代替,並讓用戶傳遞變量,例如Test.calculate(a, b)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.