我们说我有一个班级
class A:
def method(self):
return self
如果调用method
,是指向要返回的A
- 对象的指针,还是对象的副本?
答案 0 :(得分:9)
它返回一个引用:
>>> a = A()
>>> id(a)
40190600L
>>> id(a.method())
40190600L
>>> a is a.method()
True
您可以这样想:您实际上将 self
作为参数传递给.method()
函数,并返回相同的self
。
答案 1 :(得分:3)
它返回对象的引用,请看以下示例:
class A:
def method(self):
return self
a = A()
print id(a.method())
print id(a)
> 36098936
> 36098936
b = a.method()
print id(b)
> 36098936
关于id
功能(来自python docs):
返回对象的“标识”。这是一个整数(或长整数) 整数)保证对于该对象是唯一的和常量的 在其一生中。