在Python中,是否会回归自我。返回对象或指针的副本?

时间:2016-05-19 10:38:24

标签: python class pointers

我们说我有一个班级

class A:
    def method(self):
        return self

如果调用method,是指向要返回的A - 对象的指针,还是对象的副本?

2 个答案:

答案 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):

  

返回对象的“标识”。这是一个整数(或长整数)   整数)保证对于该对象是唯一的和常量的   在其一生中。