【发布时间】:2014-03-14 04:51:06
【问题描述】:
考虑以下几点:
class objectTest():
def __init__(self, a):
self.value = a
def get_value(self):
return self.value
class execute():
def __init__(self):
a = objectTest(1)
b = objectTest(1)
print(a == b)
print(a.get_value() == b.get_value)
print(a.get_value() == b.get_value())
print(a.get_value == b.get_value)
if __name__ == '__main__':
execute = execute()
此代码返回
>>>
False
False
True
False
鉴于 get_value 是一个函数,我希望执行停止并返回错误,但事实并非如此。有人能解释一下为什么 python 解释器允许这种语法而不是引发属性错误,在我的情况下这会节省我宝贵的时间。
【问题讨论】:
-
以防万一你来到这里是因为你真的想在没有括号的情况下调用一个函数,注意有时可以通过 hacky decators。例如
>>> f = lambda *args: print('hi') >>> @f ... class _: pass ... hi -
@Chris_Rands 你什么时候需要这样做?
标签: python python-3.x