問題タブ [pyobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 3.5.1、モジュールを削除してもグローバル変数が破棄されない
python35.dll をロードするアプリがあります。Python API PyImport_AddModule を使用して、py ファイルを実行します。そして PyDict_DelItemString を使用してモジュールを削除します。py ファイルにはグローバル変数があります。モジュールを削除するために PyDict_DelItemString を呼び出しても、グローバル変数は破棄されません。Py_Finalize を呼び出すと、グローバル変数が破棄されます。手遅れです。それがメモリリークの原因です。Py_Initialize はアプリの起動時に呼び出されるため、Py_Finalize はアプリのシャットダウン時に呼び出されます。
ただし、python33.dll では問題ありません。PyDict_DelItemString を呼び出してモジュールを削除すると、グローバル変数が破棄される可能性があります。
問題を解決するには?回避策はありますか? 私は python35.dll を使用する必要があり、PyDict_DelItemString を呼び出してモジュールを削除するときに、モジュール内のグローバル変数が自動的に解放されることを望みます。
Python テスト コードは次のとおりです。
python - C++、PyObject からのパラメーターを使用して Python コンストラクターを作成する
私はこのようなpythonクラスを持っていA
ます。
このコードをこのように呼び出す必要があります。
現在、A
C++ コードからこのクラスを使用する必要があります。私はここまで来ました。
しかし、私はエラーが発生しています
例外 TypeError: '/usr/lib64/python2.7/threading.pyc' からのモジュール 'threading' の 'argument list must be tuple'
import
fromステートメントからa.print_name("John")
from C++への変換方法を教えてください。どんな助けでも大歓迎です。
python - 既存の変数の名前から PyObject 参照を取得することは可能ですか?
埋め込まれた Python コードで、既存のオブジェクトのオブジェクト参照を取得する方法はありますか?
つまり、'obj' というオブジェクトが (スクリプトによって作成されて) 既に存在し、それを PyObject* 参照に「変換」する必要がある場合、次のような関数はありますか? PyObject *getObjectReference(char *name) ?
編集:例として、コードの一部にいくつかのモジュールをインポートするとします。
(または、同じ変数を定義する外部スクリプトである可能性もあります)
さて、コードの別のポイントで、その変数を取得したいと思います。私は次のようなものを探しています
「c で python のグローバル変数を読み取る」は、それを作成したモジュールへの参照がなければ、グローバルに定義された変数を取得することはできないと暗黙のうちに言って、私の質問に部分的に答えます。これは正しいです?
python-2.7 - C++ に埋め込む Python New Style クラスのインスタンスを作成する
コードPyObject
の一部を に埋め込む作業を行っています。Pythonインスタンスを作成するために使用するとうまくいく解決策を見つけました。ただし、このような新しいスタイルの python クラスでは機能しません。python
C++
python 2.7
PyInstance_New
私の古いコード ( python 2.7
) では、クラス定義はオブジェクト クラスから継承されず、print_name
このようにメソッドを呼び出すためにインスタンスを作成します。PS ファイル名は A.py です。
python 3.x
しかし、上記のコードは、 newではではなく をtype(class)
返すため、もう機能しません。今、私はこのエラーが発生しています。object
instance
内部関数への引数が正しくありません。
どんな助けでも大歓迎です。ありがとうございました。