問題タブ [setattr]

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 投票する
2 に答える
3019 参照

python - setattr() を使用して特別なメソッドを設定する

__getitem__を使用してクラス インスタンスになどの特別なメソッドを動的に割り当てることは可能setattr()ですか? たとえば、これがある場合:

そして、これを試してください:

私はこれを得る:

しかしもちろん、これは問題なく動作します:

Pythonがこの種のメソッド検索をどのように行うかについて、私には理解できないことが明らかにここで起こっています。これらのメソッドは、インスタンスではなくクラスに設定する必要がありますか?

更新

したがって、クラスでこれを見ることができることを知っているよりも明確にする必要があります...インスタンスごとExampleに設定する方法があることを望んでいましたが、これまでに見たコンセンサスは、あなたはそれを行うことができないということです.

0 投票する
4 に答える
10529 参照

python - コンストラクターの外で属性の設定を制限するには?

クラスが初期化された後、クラスの一部の属性に対するそれ以上の割り当てを禁止したいと考えています。例えば; Person インスタンス 'p' が初期化された後は、誰も明示的に 'ssn' (社会保障番号) プロパティに値を割り当てることはできません。_ setattr __ init _メソッド内で値を割り当てている間に呼び出されているため、これは私が望むものではありません。今後の割り当てのみを制限したいと思います。どうすればそれを達成できますか?

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

python - 動的に名前が付けられた属性のゲッタープロパティを実行するためのより良い方法はありますか?

jsonデータをモデル化するクラスの1つに、同様のフィールドがいくつかあります。すべてのフィールドはNoneに初期化され、静的ツールが存在することを認識します。その後、ヘルパー関数は、モデリングしているjsonデータに基づいてフィールドを初期化するのに役立ちます(知りたい場合はSecondHandSongs API )。

一部のデータは、フェッチする必要のある余分なデータのURIのみを取得します。したがって、隠れた変数をNoneに初期化し、最初のリクエストでデータをフェッチ/デコードするという古いトリックを使用したいと思います。しかし、setattr(self.__class__)醜いように見えます。

(Pythonでプロパティを動的に設定する)より良い方法はありますか?

編集: initから呼び出されたインスタンスメソッドにプロパティを設定しようとしていることに気づきました 。予想通り、2回目は失敗しました。

編集2:

オブジェクトごとにプロパティを設定していることに気付いた後、これを修正した方法は次のとおりです(シングルトンクラスでない場合は不可能です)

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

python - __setattr__ はコードを壊していますか?

ここに私が持っているコードがあります

オフィサーを作成しようとするたびに壊れます:

を定義するときに入力した名前が認識されないのはなぜheloですか?

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

python - python/djangoでのsetattrとオブジェクトマニピュレーションの違い

私は次のモデルを持っています:

モデルを操作する方法はいくつかあります。

初め

2番

私がものを操作していたとき、ブール値の更新の観点から、最初の方法は機能しませんでしたが、2番目の方法は機能しました。1番目と2番目の使用の違いは何ですか、またいつ使用する必要がありますか?

ありがとう!

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

python - オブジェクト使用時のAttributeError。__setattr__

最後の3行の何が問題になっていますか?

単一の属性(fooなど)を持つオブジェクトが必要ですが、そのためだけにクラス(FooClassなど)を定義する必要がありますか?

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

python - pythonファイルに属性を設定するには?

クラスに属性を設定する方法は知っていますが、ファイルに設定する方法が見つかりません..

これは、動作します。

setattr() の API_tests をクラスではなくオブジェクトとしてのファイルに置き換えて、このファイルに関数 (test_generator X 4) が追加されるようにします。それらを動的に設定します。

コマンドラインで「nosetests -v」を実行すると、「4 つのテストに合格しました」と表示されると予想される結果です。

この質問は他の作品にある可能性があります:現在のファイルをオブジェクトとして取得する方法

ありがとう

0 投票する
4 に答える
5478 参照

python - 初期化後まで`__setattr__`を無効にするクリーンな方法

次のラッパークラスを作成しました。__setattr__すべての属性をラップされたクラスにリダイレクトするように定義したいと思います。ただし、これにより、ラッパークラスを初期化できなくなります。これを修正するエレガントな方法はありますか?

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

python - Pythonでモックオブジェクトを作りたい

Python でインスタンス化し、setattr() を介してプログラムで属性を作成できるダミー オブジェクトが必要です。

組み込みオブジェクトで試してみましたが、おそらく正当な理由でうまくいきませんでした。

実際に自分で定義せずに、そのような目的でPythonで使用できる基本オブジェクトは何ですか?

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

python - `setattr` (および `getattr`) の使用は悪い習慣と見なすことができますか?

setattrそしてgetattr、私のプログラミングスタイルに入りました(主に科学的なもので、Pythonに関する私の知識は独学です)。

場合によってはセキュリティ上の問題につながる可能性があるため、潜在的な危険を継承することを考慮するexecと、同じ議論が有効であると見なされるかどうか疑問に思っていました. (私はいくつかの情報を含むこの質問を見つけました-議論はあまり説得力がありませんが。)evalsetattrgetattr

私の知る限り、setattrあまり気にせずに使用できますが、正直なところ、Python の知識を十分に信頼していません。間違っている場合は、使用する習慣を取り除きたいと思います。setattr.

どんな入力でも大歓迎です!