在以下 Python 代码中:
class Foo:
def bar(self):
return 1
def baz():
return Foo()
print baz().bar()
问题0:
当在bar()
中进行评估时print baz().bar()
,是什么使Foo
返回的实例baz()
尚未被垃圾收集,因为似乎没有对它的引用,就像在:
foo = baz()
print foo.bar()
在哪里foo
存储Foo
实例的引用。
问题一:
如果 Foo 和 baz 在 Python 扩展模块中用 C 实现,是否应该baz
增加返回对象的引用计数foo
以将其设置为 1?