Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
几天前我看到了这个print add().a线程,我理解(在阅读答案之后)为什么 OP 会出现问题,但我不明白在“添加”函数上使用的点运算符发生了什么: 。 a是 class 的一个元素test,并 add创建 的一个实例test,但是如何a在函数上直接访问?
print add().a
a
test
add
在那篇文章中,该函数add()返回一个test对象。该对象有一个属性a,因此可以使用.运算符访问它。
add()
.
换句话说,add().a访问 函数调用 结果a的属性,而不是函数对象本身的属性(即)。addadd.a
add().a
add.a
add()这会创建一个对象,它没有分配给一个名称(也许这是混淆),然后.a访问(未命名)add()对象的成员。
.a
print只是做它需要做的事情。
print
这与这样做几乎相同:
foo = add() print foo.a del(foo)