Let's say I have a class
class A:
def method(self):
return self
If method
is called, is a pointer to the A
-object going to be returned, or a copy of the object?
Let's say I have a class
class A:
def method(self):
return self
If method
is called, is a pointer to the A
-object going to be returned, or a copy of the object?
It returns a reference:
>>> a = A()
>>> id(a)
40190600L
>>> id(a.method())
40190600L
>>> a is a.method()
True
You can think of it this way: You actually pass self
to the .method()
function as an argument and it returns the same self
.
It returns a reference to the object, look at the following example:
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
About the id
function (from python docs):
Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime.