問題タブ [class-attributes]
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 - **kwargs からの構築中のクラスの属性の設定
ここでPython初心者、
現在、私はSQLAlchemyを使用していますが、これがあります:
これは に/db/users.py
あるので、次のように使用されます。
しかし、コードcreate()
は少しばかげており、if ラダーを必要とせず、User オブジェクトにまだないキーが追加された場合に失敗する、より良い方法があるかどうか疑問に思っています。お気に入り:
そうすれば、これを独自の関数に入れることができます (うまくいけば、既に存在する場合を除きますか?) したがって、if はしごを何度も実行する必要がないため、このコードを変更せずにテーブル構造を変更できます。
助言がありますか?
python - Pythonとオブジェクト/クラス属性-何が起こっているのですか?
Pythonが次のことを行う理由を誰かが説明できますか?
かなり紛らわしいです!
python - Pythonでクラス属性を文書化する方法は?
私は、属性がパブリックにアクセス可能であり、特定のインスタンス化でオーバーライドされることがある軽量クラスを作成しています。Python 言語には、クラス属性の docstring やその他の属性を作成するための規定はありません。これらの属性を文書化するために、期待され、サポートされている方法は何ですか? 現在、私はこのようなことをしています:
これにより、最初の標準ドキュメント文字列セクションを含むクラスのドキュメント文字列と、 への拡張代入を介して各属性に追加された行が生成されます__doc__
。
このスタイルはdocstring スタイル ガイドラインで明示的に禁止されているようには見えませんが、オプションとしても言及されていません。ここでの利点は、提示可能なクラス docstring を作成しながら、定義と共に属性を文書化する方法を提供し、docstring からの情報を繰り返すコメントを記述する必要がないことです。属性を実際に 2 回書かなければならないことに、いまだにイライラしています。少なくともデフォルト値の重複を避けるために、docstring の値の文字列表現を使用することを検討しています。
これは、その場しのぎのコミュニティの慣習に対する凶悪な違反ですか? 大丈夫ですか?より良い方法はありますか?たとえば、属性の値とドキュメント文字列を含むディクショナリを作成し、その内容を__dict__
クラス宣言の末尾に向かってクラスとドキュメント文字列に追加することができます。これにより、属性名と値を 2 回入力する必要がなくなります。 edit : この最後のアイデアは、少なくともデータからクラス全体を動的に構築しない限り、実際には不可能だと思います。これは、他の理由がない限り、本当に悪い考えのように思えます。
私は python にかなり慣れていないので、コーディング スタイルの詳細をまだ調べているので、関係のない批評も大歓迎です。
ruby - プロパティが変更されたときに Ruby クラス属性のハッシュを更新する
属性が処理される方法でRails AactiveRecordモデルと同様に機能するRubyクラスを作成しようとしています:
つまり、クラスを初期化すると、「属性」ハッシュが関連する属性で更新されます。
ここまでは順調ですね。私がしたいのは、個々のプロパティを設定したときに属性ハッシュを更新することです。
を使用する代わりに、すべての属性に対してセッターとゲッターを作成することでそれを行うことができますがattr_accessor
、それは多くのフィールドを持つモデルには適していません。これを達成する簡単な方法はありますか?
python - `type`クラスをサブクラス化することによるクラス記述子の実装
クラスの一部としていくつかのデータ記述子が欲しいのですが。つまり、クラス属性を実際にはプロパティにし、そのアクセスはクラスメソッドによって処理されるようにします。
Pythonはこれを直接サポートしていないようですが、type
クラスをサブクラス化することで実装できます。したがって、のサブクラスにプロパティを追加するtype
と、そのインスタンスにそのプロパティの記述子が含まれるようになります。そのインスタンスはクラスです。したがって、クラス記述子。
これはお勧めですか?注意すべき落とし穴はありますか?
python - Python - クラス本体内からクラス名を参照する
Python では、初期化された値を持つクラス属性、辞書が必要です。私はこのコードを書きました:
しかし、このコードを実行しようとすると、「NameError: name 'MetaDataElement' is not defined」というエラー メッセージが表示されます。私たちを手伝ってくれますか?
前もって感謝します。
c# - カスタム属性を利用する最も簡単でエレガントな方法は何ですか?
少し告白しますが、私は属性クラスを書いたことがありません。クラスをフラグや追加機能で装飾する目的に役立つことを理解しています。
属性を作成してクラスに適用するだけでなく、別のコードブロックから属性を利用する簡単な例を教えてください。私がこれまでに見た、あらゆる形式の属性を利用する唯一のコード サンプルは、リフレクションを使用してそれを行っていましたが、リフレクションなしでそれらを使用する方法があることを常に望んでいました。
c# - 反射と属性 -- 除去? 変形?または Windows サービスを完全に信頼していますか?
ソースにアクセスできないクラスからセキュリティ権限を削除したい。リフレクションを介して、属性を削除または変更することは可能ですか?
[...PermissionSet(SecurityAction.InheritanceDemand, Name="FullTrust"), PermissionSet(SecurityAction.LinkDemand, Name="FullTrust")]
少し考えた結果、問題に対するこのアプローチは間違っているのではないかと思いました。そのパーミッションが上記の要求を満たすように、Windows サービスを完全な信頼で実行する方法はありますか?
c# - C# で組み込み属性の継承をオーバーライドする
クラスとサブクラスをシリアル化しようとしたときにキャッチされない例外の束と格闘した後、私の問題が何であったかを最終的に理解しました。一般的な C# 属性についてはまだよくわかりませんが、カスタム属性を作成するときに、プログラマーが属性の自動継承を有効にできることは理解しています。
[Serializable] の継承をオーバーライドする方法はありますか? 最初から行われなかった、および/またはそもそもこれを行うのが悪い考えである正当な理由はありますか? 上記の基本クラスのすべてのサブクラスをシリアライズ可能にしたいので、作成した新しいサブクラスに属性を追加する必要があるのはエレガントではないようです。
ありがとう!
php - Doxygenを使用してクラス属性をどのように文書化しますか?
Doxygen を使用してクラス属性を文書化しようとしています。現在、保護された属性は、特定のクラスのページの上部にあるリストに表示されます。それらについて説明を加えたいと思います。
@param [name] [description]
クラスの先頭と属性の宣言のすぐ上の両方を使用してみました。コンストラクタークラスの docblock にそれらを入れようとしたところ、壊れてしまいました。
私が見逃しているものはありますか?
-- ローガン