IronPython 中的属性:永恒循环
Properties in IronPython: eternal loop
好吧,我在 python 方面非常菜鸟,现在我尝试将 c# 代码翻译成 IronPython。
属性有问题:
这是我的 class 示例(从 http://www.programiz.com/python-programming/property 获取):
class SomeClass(object):
def __init__(self, temperature = 0):
self._temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
@property
def temperature(self):
print("Getting value")
return self.temperature
@temperature.setter
def temperature(self, value):
print("Setting value")
self.temperature = value
当我尝试从另一个 class 中获取这个 属性 时
cb = SomeClass()
temp = cb.to_fahrenheit()
我通过打印 "Getting value" 和最后的 WhosebugException 得到了一个永恒的调用。属性有什么问题?这是使用 ref 参数翻译 getter 和 setter 的一小部分任务,但我无法继续处理此错误。
您的 getter 和 setter 应该是 returning/setting 自己。_温度(支持字段),而不是 self.temperature (the 属性) - 通过自我引用,你造成了无限循环。
好吧,我在 python 方面非常菜鸟,现在我尝试将 c# 代码翻译成 IronPython。 属性有问题:
这是我的 class 示例(从 http://www.programiz.com/python-programming/property 获取):
class SomeClass(object):
def __init__(self, temperature = 0):
self._temperature = temperature
def to_fahrenheit(self):
return (self.temperature * 1.8) + 32
@property
def temperature(self):
print("Getting value")
return self.temperature
@temperature.setter
def temperature(self, value):
print("Setting value")
self.temperature = value
当我尝试从另一个 class 中获取这个 属性 时
cb = SomeClass()
temp = cb.to_fahrenheit()
我通过打印 "Getting value" 和最后的 WhosebugException 得到了一个永恒的调用。属性有什么问题?这是使用 ref 参数翻译 getter 和 setter 的一小部分任务,但我无法继续处理此错误。
您的 getter 和 setter 应该是 returning/setting 自己。_温度(支持字段),而不是 self.temperature (the 属性) - 通过自我引用,你造成了无限循环。