問題タブ [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.
python - Python でメンバーの存在を確認する
オブジェクトにメンバーがあるかどうかを定期的に確認したいと思います。例として、関数内でのシングルトンの作成があります。そのために、次hasattr
のように使用できます。
しかし、これを行うこともできます:
ある方法が他の方法よりも優れていますか?
編集:追加...しかし、問題はシングルトンの作成方法ではなく@classmethod
、オブジェクト内のメンバーの存在を確認する方法であることに注意してください。
編集:その例では、典型的な使用法は次のようになります。
次にs
、タイプ のオブジェクトでFoo
、毎回同じです。そして、通常、メソッドは何度も呼び出されます。
python - 存在しない属性を処理するための hasattr() vs try-except ブロック
対
どちらを優先する必要がありますか?その理由は?
python - hasattr を使用して Python のサブモジュールをチェックする方法
実行時に、Python コードはロードするサブモジュールの名前を取得しますが、これは以前はわかりませんでした。ここで、このサブモジュールが既存のモジュール内に存在するかどうかを確認したいと思います。foo
とbar
を指定できるこの構造を考えてみましょう。
さて、通常はこれを行います。これは定義と変数に対して機能します。
または、同じように機能する AttributeError をキャッチしています。
ただし、上記のファイル構造では、このアプローチを立ち上げて機能させることができません。hasattr()
は常に False を返します (つまり、常に AttributeError がスローされます)。
を見るとdir(master)
、次の出力が表示されます。
inを明示的に指定__all__
しmaster/__init__.py
ても役に立ちませんが、dir() を
私が間違っていること、またはこれらの種類のテストを達成する方法があるかどうか、何か考えはありますか? (ちなみに: Win/Cygwin 上の Python 2.6、興味があれば)
python - 辞書のリスト値に対する Python の hasattr は常に false を返しますか?
存在しないキーの呼び出しを時々受け取る辞書があるので、これらのケースを処理するためにhasattr
andを使用します。getattr
これを初めて実行するときinteger = 1
:
このコードを次のように再度実行しますinteger = 2
。
最初の実行は明らかに成功しています{'foo': [1]}
が ( )、hasattr
false を返しgetattr
、2 回目はデフォルトの空の配列を使用するため1
、その過程で の値が失われます! どうしてこれなの?
python - 型を識別するための hasattr() の選択肢に関する Python リファレンス
タイプを識別するために hasattr() で使用する属性を選択するための優れたワンストップ ショップ Python リファレンスはありますか。
たとえば、次は文字列ではないシーケンスの場合です。
最適なパターンをすばやく選択するためのしっかりとしたリファレンスがあるとよいでしょう。
python - Python 2.73で関数に割り当てられた変数をリセットするには?
基本的に、ある人が私のコードを改善するのを手伝ってくれました。問題は、それがまだ完全に失望しており、機能しないことです。私がやりたいことは、 lenRecur.number をリセットして、他の文字列を使用して正しい答えを取得して、関数を再度使用できるようにすることです(大きすぎない答え)
問題は hasattr にあると思います。しかし、削除することはできません。削除すると、文字列の長さの計算機が機能しなくなるからです。
とにかく、関数の後に lenRecur.number = 0 を追加しても、まだ機能しません。
関数が「return」にヒットすると、それは完了です。「戻る」前にリセットすると0が返ってきて正解ではないので困っています。
Ps私のプログラム(?)/スクリプト(?)の目標は、input()メソッドを使用せずに入力文字列の長さを測定することです。より原始的な手段を使用して、 length() メソッドを再作成しようとしています。
スクリプトにはさまざまな入力が必要になるため、リセットする必要があります。
python - ダックタイピングと hasattr の使用
私は何度も次のようなものを見てきました:
しかし、次のクラスのインスタンスを渡すと、確実に失敗します。
私の質問は次のとおりです。それを処理する最もpythonicな方法は何ですか?
私は主に2つの方法について考えてきました。
と
python - メソッド「hasattr」はプロパティを正しくテストしていませんか?
私は本当にこれで立ち往生しています!XML として返される商品データを Amazon から取得しています。検索キーワードが有効な場合、ノードItems
>を含む XML が返されますItem
。キーワードが間違っているか、有効な結果を返さないキーワードがある場合、Item
ノードは存在しません。簡単に解析できるように、関数を使用してこの XML をオブジェクトに変換しています。次に、hasattr
さまざまなノードを再帰的にチェックするために使用します。
Item
ノードが存在しない場合でもhasattr
true を返します。したがって、エラーが発生した場合、私のサイトは爆発します!
何か案は?
サンプル XML:
python - リンクを取得するための Beautifulsoup と Soupstrainer は、hasattr では機能せず、常に true を返します
ウェブページからすべてのリンクを取得するために、Python 3.3 で Beautifulsoup4 と Soupstrainer を使用しています。以下は、重要なコード スニペットです。
いくつかのWebページをテストしましたが、非常にうまく機能しますが、今日使用すると
Goldentigercasino.de の例のように、「href」フィールドがない場合でも、hasattr(link, 'href') は常に TRUE を返すことがわかりました。そのため、link ['href'] を使用するのが遅くなったため、単にそこにないため、トラブルが発生しています。
また、次のような回避策も試しました。
Doctypeも返すことを除いて、それは望みどおりに機能します:
上記と同じ理由で、これも問題を引き起こしています。
私の質問: hasattr が常に true を返すのはなぜですか?どうすれば修正できますか? また、hasattr で可能性がない場合、DOCTYPE を返さない回避策をどのように修正できますか?
これからもよろしくお願いします!