gpt4 book ai didi

c# - IronPython 中的属性 : eternal loop

转载 作者:行者123 更新时间:2023-11-28 22:32:46 25 4
gpt4 key购买 nike

好吧,我对 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

当我像这样尝试从另一个类中获取此属性时

cb = SomeClass()
temp = cb.to_fahrenheit()

我通过打印“Getting value”和最后的 StackOverflowException 得到了一个永恒的调用。属性有什么问题?这是使用 ref 参数翻译 getter 和 setter 的一小部分任务,但我无法继续处理此错误。 enter image description here

最佳答案

您的 getter 和 setter 应该返回/设置 self._temperature(支持字段),而不是 self.temperature(属性)- 通过自引用,您导致了无限循环。

关于c# - IronPython 中的属性 : eternal loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40610409/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com