我在Python中定义了一个Product类,如下所示:
class Product:
@property
def price(self):
return self.price
@price.setter
def price(self, value):
if value < 10:
raise ValueError("price can't be negative")
self.price = value
Run Code Online (Sandbox Code Playgroud)
当我尝试设置Product(prod)新实例的price属性时:
prod = Product()
prod.price = 25
print(prod.price)
Run Code Online (Sandbox Code Playgroud)
我收到一条错误消息:
RecursionError:超过最大递归深度
有人可以在这里解释我在做什么错...
递归在这里发生:
@price.setter
def price(self, value):
self.price = value
Run Code Online (Sandbox Code Playgroud)
这self.price =将触发与price()设置器相同的功能。更好(即更常规)的方法是self._price用来保留您的价值。
| 归档时间: |
|
| 查看次数: |
41 次 |
| 最近记录: |