問題タブ [python-object]
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でクラス属性を検証するには?
ユーザーがフレームワーク スタイルの設定で作成できるクラスを検証しようとしています。次の方法で、クラス属性が子クラスに存在することを確認できます。
これは以下につながりますException
:
s
次のように、クラスの作成時にデコレーターを使用してクラス属性の型を確認することもできます。
その結果:
これは、クラス属性の最終的なチェックに役立ちます。しかし、これは、各子クラスを装飾する必要がある冗長なクラス定義につながります。
s
基本クラスのクラス属性 (例)を検証する方法はありますか? あまり冗長な方法ではありませんか?
python - オブジェクトへの参照を取得する
構築時に任意のオブジェクトを指定できるクラスを作成しようとしており、そのオブジェクトの呼び出し可能なすべてのメソッドを対話型プロンプトに一覧表示します。PyInquirer
対話型プロンプト用のinspect
モジュールと、指定されたオブジェクトのすべてのメソッドを取得するためのモジュールを使用しています。
これまでのところ、特定のオブジェクトのプロンプトを動的に作成することに成功しましたがFoo() takes 0 positional arguments but 1 was given
、プロンプトからメソッドの 1 つを呼び出そうとするとプログラムでエラーが発生します。
クラッシュする理由は、実行時にオブジェクトへの参照がなくなったため、参照カウントがゼロになり、オブジェクトが解放されたためだと思います。
クラスにオブジェクトへの独自の参照を保持させることができれば、これで問題は解決します。例えば
しかし、これは無効な python です。
オブジェクトへの参照を取得するにはどうすればよいですか (または参照カウントを手動でインクリメントし、__del__
関数で手動でデクリメントします)。
ObjectMethodTerminal.py の完全なソース コードは、https: //gitlab.com/snippets/1939696 にあります。