私はPythonのC++から静的なクラス変数をどのように定義できますか?同等のPythonのコードは次のようになります:C++からPythonで静的クラス属性を定義する方法は?
class foo:
bar = int
私はタイプを定義するときtp_getsetフィールドを使用しようとしましたが、呼び出されたとき、それは動作しませんが判明し、Pythonでgetset_descriptor
を返し、それは動作しません。インスタンス(AttributeError)。さらに、Pythonのdocは、C APIを使って直接tp_dict
を操作することは安全ではないと述べています。しかし、代わりに何を使うべきかは分かりません。 ( hereを参照してください)
この例では、意図的にint
を選択しました。これは、他のクラスを参照しています。
おそらくここで答えを見つけることができますhttps://stackoverflow.com/questions/68645/static-class-variables-in-python – magicleon
@magicleon、はい、それは私がしたいです。しかし、私はC++から、C-APIを使ったライブラリ/モジュールを意味していました。 – YiFei
'tp_dict'にアクセスするのがなぜ安全でないのかについては、[issue#12719](https://bugs.python.org/issue12719)を参照してください。 – myaut