我想創建一個類,其中用戶宣告一些屬性,而其他屬性是根據先前宣告的引數計算的。
class Sum:
def __init__(self, a, b):
self.a = a
self.b = b
self.result = None
@property
def result(self):
if self.result is None:
self.result = self.a self.b
return self.result
當我宣告 a 和 b 時,結果仍然是 None。我該如何解決這個問題來計算結果?
uj5u.com熱心網友回復:
在您的情況下,您已經宣告member并且property兩者都可以同時使用它們中的任何一個。在您的情況下,如果您想要以前的結果,請使用此代碼
class Sum:
def __init__(self, a, b):
self.a = a
self.b = b
self.output = None
@property
def result(self):
if self.output is None:
self.output = self.a self.b
return self.output
sum = Sum(1, 2)
print(sum.result)
sum.a = 3
print(sum.result)
將列印
3
3
或者,如果您不想要以前的記錄,請result使用此代碼
class Sum:
def __init__(self, a, b):
self.a = a
self.b = b
@property
def result(self):
return self.a self.b
sum = Sum(1, 2)
print(sum.result)
sum.a = 3
print(sum.result)
將列印
3
5
uj5u.com熱心網友回復:
您不能擁有一個名為的成員result和一個名為 的屬性result。在這種情況下,您可能不想快取結果。你只想:
class Sum:
def __init__(self, a, b):
self.a = a
self.b = b
@property
def result(self):
return self.a self.b
s = Sum(3,4)
s.a = 4
print(s.result)
將列印 8。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/414267.html
標籤:
上一篇:PHP-搜索不需要的字符的字串
