問題タブ [descriptor]
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.
mobile - さまざまなSymbian記述子を連結する方法
Symbian記述子の操作に問題があります。基本的に、さまざまな記述子を1つの大きな記述子にまとめて、おそらくRBufに配置したいと思います。また、データの長さは、プログラムが実行するタイプごとに異なります。以下は、私が遊んでいたがビルドできなかったスケルトンコードのビットです。
コメントからわかるように、記述子を変換してバッファに追加する方法を正確に理解することはできませんでした。前もって感謝します。
python - クラスオブジェクトから非クラスオブジェクトをpythonに伝える方法
私はpythonが初めてです。クラスオブジェクトにはbases属性があるのに対し、非クラスオブジェクトにはbases属性がないと思います。しかし、よくわかりません。python\cpython は、オブジェクトが非クラスかクラスかをどのようにチェックし、それに応じて属性アクセス中に正しい引数をオブジェクトの記述子属性に渡しますか?
============================================
更新しました:
__getattribute__
私は、 と記述子がどのように連携して制限付きメソッドを作成するかを学んでいました。クラスオブジェクトと非クラスオブジェクトがどのように記述子を__get__
異なる方法で呼び出すのか疑問に思っていました。これら 2 種類のオブジェクトは同じ__getattribute__
CPython 関数を共有しており、その同じ関数は、呼び出し元のオブジェクトがクラスか非クラスかを認識している必要があると考えました。しかし、私は間違っていました。この記事はそれをよく説明しています:
http://docs.python.org/dev/howto/descriptor.html#functions-and-methods
したがって、クラスオブジェクトは使用しますtype.__getattribute__
が、非クラスオブジェクトは使用しますobject.__getattribute__
。それらは異なる CPython 関数です。また、superには 3 つ目の__getattribute__
CPython 実装もあります。
ただし、スーパー1 については、上記の記事には次のように記載されています。
super() によって返されるオブジェクトには、記述子を呼び出すためのカスタム _ getattribute _() メソッドもあります。呼び出し super(B, obj).m() は、obj._ class _._ mro _ で B の直後の基本クラス A を検索し、A._ dict _['m']._ get _(obj, A)。記述子でない場合、m は変更されずに返されます。辞書にない場合、m はobject._getattribute_ ()を使用した検索に戻ります。
上記のステートメントは、Python3.1 での私の実験と一致していないようです。私が見たのは、私にとって合理的です:
super(B, obj).m ---> A.__dict__['m'].__get__(obj, type(obj))
objclass = タイプ(obj)
super(B, objclass).m ---> A.__dict__['m'].__get__(None, objclass)
Aは渡されませんでした__get__
objclass (ではなくA ) の mro チェーンは、特に 2 番目のケースでm内に必要なものであると私は信じているので、私にとっては合理的です。
私は何か間違ったことをしていましたか?それとも、正しく理解できていませんでしたか?
jpa - jpaは読み取り専用の複合テーブルを呼び出しますが、「例外の説明:[CollectorInfo]の記述子がありません」というメッセージが表示されます
Spring 3 アプリでは、コントローラーは JpaCollectorManager を呼び出し、JpaCollectorInfoDao を呼び出して、ネイティブ クエリによって定義されたリストを取得します。jpqlに実装されていないpostgresql機能を使用する必要があるため、クエリはsqlとjpqlを使用する2つの別々のテーブルを呼び出します。コントローラーがリストをファイルしようとすると、次のエラー メッセージが表示されます。
例外 [EclipseLink-6007] (Eclipse Persistence Services - 2.1.2.v20101206-r8635): org.eclipse.persistence.exceptions.QueryException 例外の説明: [CollectorInfo] の記述子がありません。
クエリ: ReadAllQuery(referenceClass=CollectorInfo sql="select distinct ON ( col.collector_id,pst.process_source_type ) col.*,pst.process_source_timestamp,pst.process_source_type from perform_schema.collector col join perform_schema.process_set pst on pst.collector_id = col.コレクター ID col.collector_id、pst.process_source_type、pst.process_source_timestamp desc による順序 ")
コントローラー Java には次の呼び出しがあります。
JpaCollectorInfoManager.java には次のものがあります。
JpaCollectorInfoDao.java:
CollectorInfo クラスに @Entity が定義されていません。@Entity を定義すると、テーブルを解決できないことがわかります (実際のテーブルがないため、これは正しいことです)。私はあらゆる種類の順列を試しましたが、この上糸を作ることができないようです.
python - Python 2.6:派生クラスによって隠されている基本クラス記述子フィールドにアクセスする方法は?
ホスト オブジェクトの辞書にデータを格納する記述子があります。そして、クラス階層に同じ名前のこの記述子のフィールドがあります。
最後の行は機能しません: super(B,b).f = 'a'
なぜ機能し、類似のセットが機能しないのですか? A. dict ['f']よりもエレガントな方法で A の f を設定できますか。(b,'a') を設定しますか?
訂正:
私の最初の投稿で与えられた形式では、Af は A のキー名の名前付きプロパティ (欠落) またはデフォルト 8192 に評価されます - それとは何の関係もありません。そのため、A. dict ['f'] - を使用してget呼び出しを除外しました。Af を必要な ADescriptor インスタンスに評価できるようにするには、わずかな変更が必要でした。
この場合A.f.__set__(b,'a')
は機能します。しかし、それはまだ醜いです!@BiggAl が提供するプロパティ ソリューションは、私のニーズには適していません。すべての記述子をプロパティでラップする必要があります。
bash - bash: stdin/stderr をリダイレクトし、後で fd を元に戻す方法は?
stdin と stderr をファイルにリダイレクトし、一連の処理を行ってから、それらのリダイレクトを元に戻し、ファイルの内容に対してアクションを実行するスクリプトが必要です。私はしようとしています:
これは私が望むことをしているようですが、かなり複雑に思えます。これを行うためのよりクリーンで明確な方法はありますか?
python - メソッドはstaticmethodまたはinstanceメソッドとして使用できますか?
私はこれができるようになりたいです:
これは簡単な解決策があるはずの問題のように思えますが、私はそれを考えることも見つけることもできません。
python - プロパティを使用するのではなく、記述子クラスのインスタンスを Python のクラス属性に割り当てるのは、いつ、どのような場合ですか?
プロパティがディスクリプタであることは承知していますが、ディスクリプタ クラスを使用する方がより有利である、pythonic である、または@property
メソッド関数で使用するよりも利点がある場合の具体的な例はありますか?
python - Pythonの静的メソッドとインスタンスメソッド
Pythonメソッドを静的とインスタンスの両方で同時に定義できますか?何かのようなもの:
両方で呼び出すことができるように:
目的は、2セットのロジックを実行できるようにすることです。インスタンスメソッドとしてアクセスする場合は、インスタンス変数を利用して処理を行います。静的メソッドとしてアクセスする場合は、なしでアクセスできます。
python - Python:記述子をインスタンス変数にできないのはなぜですか?
この記述子を定義するとします。
そして私はこれでそれを使用します:
クラス属性value
も同様であり、すべてのインスタンスで共有されます。
これを定義すると:
この場合value
はインスタンス属性であり、インスタンスによって共有されません。
記述子である場合value
はクラス属性のみであるのにvalue
、単純な整数である場合はインスタンス属性になるのはなぜですか?
python - Python クラス記述子オブジェクトでメソッドを呼び出す方法は?
class String()
with __get__()
、__set__()
、および methodを作成しましたto_db()
。ただし、オブジェクト " " ではなく、によって返された値を呼び出しているため、name = String()
実行できません。self.name.to_db()
to_db()
__get__()
name
これに対処する 1 つの方法は、self.name.to_db()
直接呼び出すのではなく、フラグを設定しinstance
て条件付きを作成し、__get__()
それをチェックしてそれが でto_db()
あるかどうかを呼び出すことですTrue
が、これは扱いにくいようです。より良い方法はありますか?
また、私は記述子に不慣れです-状態を使用instance
および/またはinstance.__dict__
保存することと、状態を保存することの長所/短所はself
何ですか?