のはmethod
が呼び出された場合、私はクラスPythonでは、 'return self'はオブジェクトまたはポインタのコピーを返しますか?
class A:
def method(self):
return self
があるとしましょう、返されることになるだろうA
-objectへのポインタ、またはオブジェクトのコピーでありますか?
のはmethod
が呼び出された場合、私はクラスPythonでは、 'return self'はオブジェクトまたはポインタのコピーを返しますか?
class A:
def method(self):
return self
があるとしましょう、返されることになるだろうA
-objectへのポインタ、またはオブジェクトのコピーでありますか?
それは参照を返します:
>>> a = A()
>>> id(a)
40190600L
>>> id(a.method())
40190600L
>>> a is a.method()
True
あなたはそれをこのように考えることができます。引数として.method()
関数にあなたが実際にパスself
、それは同じself
を返します。
それはオブジェクトへの参照を返し、次の例を見て:(python docsから)
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では存在しません。 – DeepSpace