这是一段代码。
class TestClass:
def __init__(self):
self.a = "a"
print("calling init")
@property
def b(self):
b = "b"
print("in property")
return b
test_obj = TestClass()
print("a = {} b = {}".format(test_obj.a,test_obj.b))
我试图理解when变量b在 test_obj 内部定义的值是“b”。
从下面的屏幕截图中可以看到,第 13 行的语句尚未被评估/执行,但已经是b因为test_obj已经初始化了。通过在每一行上放置断点来调试它并不能帮助我理解这是如何发生的。
Can someone please explain this to me ?
更有可能的是,IDE 试图向您展示以下内容的价值:test_obj.b
是。为此它从中获取值test_obj.b
。因为这并没有多大区别b
是一个属性或@property
,调试器本质上只是做test_obj.b
对你来说,这赋予了它价值'b'
.
功能def b
与您对任何其他普通函数的期望完全一样;只是调试器/IDE 会隐式地为您调用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)