refcountがどのようにPythonで動作するかを理解しようとしています。なぜオブジェクトがそのインスタンスが1つだけの場合にカウントが2になるのか説明できますか? (それがあるため、一時はGETREFCOUNTメソッドに渡されているのでしょうか?)また、なぜメンバーから呼び出されたときに呼び出されるより数が(参照カウントをぶつけ自己参照である?)されRefcount pythonオブジェクト
import sys
class A:
def print_ref_count(self):
print sys.getrefcount(self)
a = A()
print sys.getrefcount(a) # prints 2
a.print_ref_count() # prints 4
print sys.getrefcount(a) # prints 2
サイドノート:refカウントを1にすることは可能ですが、オブジェクトを参照カウントする目的でのみ作成する必要があります(オブジェクトは、オブジェクトに格納される不変のリテラルにすることはできません)。関数の定数、空の 'tuple'または不変のリテラルの空ではないタプルなど)。したがって、 'sys.getrefcount(A())'は 'sys.getrefcount( ''。join(( ''、 'b'、 'c')))'インターンリテラルは避けてください)、いずれも非常に役に立ちません。 – ShadowRanger