問題タブ [hasattr]

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.

0 投票する
1 に答える
2519 参照

python - Python の hasattr が間違った結果を返すことがある

インスタンスに属性hasattrがないと言われるのはなぜですか?foo

私は期待しました:

0 投票する
2 に答える
7974 参照

python - Pythonプロパティが存在することを確実にチェックする方法は?

bar次のクラス (バグのあるプロパティを持つ) が与えられた場合、プロパティが存在することを確認する最も簡単な方法は何ですか?

両方ともhasattr失敗getattrし、機能するだけdirです:

私が考えることができる最善の総合的な解決策は次のとおりです。

より良い方法はありますか?

0 投票する
1 に答える
219 参照

python - hasattr は、アプリ エンジンの ndb エンティティに対して常に True を返します

この回答を自分のプロジェクトに適用しています

これは、is_deleted が後で追加された私の ndb エンティティです。

エンティティを logging.info で印刷すると、

私がするとき

しかし、たとえば次のようにします。

私は何を間違っていますか?

0 投票する
1 に答える
1089 参照

python-3.x - getattr() による動的メソッド呼び出しで値を返す方法

while ループ コマンド プロンプトを実行するクラスが呼び出され、コマンド シェルのメソッドのリストを動的に作成するために使用dir()しています。getattr()値を返したいのですが、動的に呼び出されたメソッドから戻ると、メインの while ループに戻るだけです。これを修正するにはどうすればよいですか?

0 投票する
1 に答える
1326 参照

python - getattr を使用して別のクラスで関数を呼び出す

ここでは可能性の範囲外のことをしようとしているのかもしれませんが、希望を捨てる前にまず質問しようと思いました. それで、ここに行きます...

A と B の 2 つのクラスがあります。各クラスには任意の数の関数があります。クラス B はクラス A のどこかでインスタンス化され、クラス A はそのインスタンス化を介してクラス B 機能の 1 つを利用します。クラス B の関数は、クラス A の現在のインスタンス化データを使用して、1 つ以上のクラス A の関数を参照する必要があります。

クラスA

クラス B:

次のエラーが表示されます。

getattr(the_class, function_name)()

TypeError: unbound メソッド foo() は、classA インスタンスを最初の引数として呼び出す必要があります (代わりに何も取得しません)

ありがとう!

0 投票する
2 に答える
484 参照

python - __getattribute__ 呼び出しが hasattr によるものかどうかを検出する

私は__getattribute__クラスのために再実装しています。

__getattribute__誤った (もちろん、失敗が予想されることを意味します) 属性の提供の失敗 (実装が非常に複雑であることが判明したため) に注意したいと思います。そのために、コードが発生する直前に属性を検索/提供できなかった場合、警告を記録しAttributeErrorます

私は知っています:

  1. __getattribute__実装はできるだけ小さくすることをお勧めします。
  2. __getattribute__実装が呼び出された方法/理由に基づいて異なる動作をすることは、間違っていると見なされます。
  3. try/exceptを使用する代わりに、属性にアクセスするコードを使用することもできますhasattr

TL;DR : それにもかかわらず、 (属性にアクセスする「本物の」試みとは対照的に) が原因で への呼び出し__getattribute__が行われたかどうかを検出したいと思います。hasattr