問題タブ [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 投票する
5 に答える
16507 参照

python - Python でメンバーの存在を確認する

オブジェクトにメンバーがあるかどうかを定期的に確認したいと思います。例として、関数内でのシングルトンの作成があります。そのために、次hasattrのように使用できます。

しかし、これを行うこともできます:

ある方法が他の方法よりも優れていますか?

編集:追加...しかし、問題はシングルトンの作成方法ではなく@classmethod、オブジェクト内のメンバーの存在を確認する方法であることに注意してください。

編集:その例では、典型的な使用法は次のようになります。

次にs、タイプ のオブジェクトでFoo、毎回同じです。そして、通常、メソッドは何度も呼び出されます。

0 投票する
12 に答える
32643 参照

python - 存在しない属性を処理するための hasattr() vs try-except ブロック

どちらを優先する必要がありますか?その理由は?

0 投票する
3 に答える
2299 参照

python - hasattr を使用して Python のサブモジュールをチェックする方法

実行時に、Python コードはロードするサブモジュールの名前を取得しますが、これは以前はわかりませんでした。ここで、このサブモジュールが既存のモジュール内に存在するかどうかを確認したいと思います。foobarを指定できるこの構造を考えてみましょう。

さて、通常はこれを行います。これは定義と変数に対して機能します。

または、同じように機能する AttributeError をキャッチしています。

ただし、上記のファイル構造では、このアプローチを立ち上げて機能させることができません。hasattr()は常に False を返します (つまり、常に AttributeError がスローされます)。

を見るとdir(master)、次の出力が表示されます。

inを明示的に指定__all__master/__init__.pyても役に立ちませんが、dir() を

私が間違っていること、またはこれらの種類のテストを達成する方法があるかどうか、何か考えはありますか? (ちなみに: Win/Cygwin 上の Python 2.6、興味があれば)

0 投票する
5 に答える
26728 参照

python - 辞書のリスト値に対する Python の hasattr は常に false を返しますか?

存在しないキーの呼び出しを時々受け取る辞書があるので、これらのケースを処理するためにhasattrandを使用します。getattr

これを初めて実行するときinteger = 1:

このコードを次のように再度実行しますinteger = 2

最初の実行は明らかに成功しています{'foo': [1]}が ( )、hasattrfalse を返しgetattr、2 回目はデフォルトの空の配列を使用するため1、その過程で の値が失われます! どうしてこれなの?

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

python - 型を識別するための hasattr() の選択肢に関する Python リファレンス

タイプを識別するために hasattr() で使用する属性を選択するための優れたワンストップ ショップ Python リファレンスはありますか。

たとえば、次は文字列ではないシーケンスの場合です。

最適なパターンをすばやく選択するためのしっかりとしたリファレンスがあるとよいでしょう。

0 投票する
3 に答える
2059 参照

python - Python 2.73で関数に割り当てられた変数をリセットするには?

基本的に、ある人が私のコードを改善するのを手伝ってくれました。問題は、それがまだ完全に失望しており、機能しないことです。私がやりたいことは、 lenRecur.number をリセットして、他の文字列を使用して正しい答えを取得して、関数を再度使用できるようにすることです(大きすぎない答え)

問題は hasattr にあると思います。しかし、削除することはできません。削除すると、文字列の長さの計算機が機能しなくなるからです。

とにかく、関数の後に lenRecur.number = 0 を追加しても、まだ機能しません。

関数が「return」にヒットすると、それは完了です。「戻る」前にリセットすると0が返ってきて正解ではないので困っています。

Ps私のプログラム(?)/スクリプト(?)の目標は、input()メソッドを使用せずに入力文字列の長さを測定することです。より原始的な手段を使用して、 length() メソッドを再作成しようとしています。

スクリプトにはさまざまな入力が必要になるため、リセットする必要があります。

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

python - ダックタイピングと hasattr の使用

私は何度も次のようなものを見てきました:

しかし、次のクラスのインスタンスを渡すと、確実に失敗します。

私の質問は次のとおりです。それを処理する最もpythonicな方法は何ですか?

私は主に2つの方法について考えてきました。

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

python - メソッド「hasattr」はプロパティを正しくテストしていませんか?

私は本当にこれで立ち往生しています!XML として返される商品データを Amazon から取得しています。検索キーワードが有効な場合、ノードItems>を含む XML が返されますItem。キーワードが間違っているか、有効な結果を返さないキーワードがある場合、Itemノードは存在しません。簡単に解析できるように、関数を使用してこの XML をオブジェクトに変換しています。次に、hasattrさまざまなノードを再帰的にチェックするために使用します。

Itemノードが存在しない場合でもhasattrtrue を返します。したがって、エラーが発生した場合、私のサイトは爆発します!

何か案は?

サンプル XML:

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

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 を返さない回避策をどのように修正できますか?

これからもよろしくお願いします!