2
有沒有辦法獲得對Python對象的弱引用?使用boost :: python :: object,只要C++或Python持有對該對象的引用,就會得到強大/共享的引用,但不會被刪除。我只希望Python能夠強有力地引用一個對象,而C++是一個弱對象。那可能嗎?Boost.Python:對對象的弱引用?
有沒有辦法獲得對Python對象的弱引用?使用boost :: python :: object,只要C++或Python持有對該對象的引用,就會得到強大/共享的引用,但不會被刪除。我只希望Python能夠強有力地引用一個對象,而C++是一個弱對象。那可能嗎?Boost.Python:對對象的弱引用?
您需要進入CPython API。使用weakrefobject.h
的PyWeakReference
類型。標頭公開的API類似於weakref
模塊 - 請參閱the docs。
謝謝。我在我的腳本中使用了weakref,而不是進入C API。這些腳本現在有點難寫了,但是遵循Python的禪意,「顯式比隱式更好」。 :) –