問題タブ [namedtuple]
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 - 名前付きタプルにdocstringを追加しますか?
簡単な方法でドキュメント文字列を名前付きタプルに追加することは可能ですか?
私は試した
しかし、それはそれをカットしません。他の方法で行うことは可能ですか?
python - フィールド名として変数を指定した namedtuple._replace の使用
変数を使用してnamedtuple fieldameを参照できますか?
python - namedtuple._replace() がドキュメントの説明どおりに機能しない
の実装namedtuple._replace()
に問題があったため、ドキュメントからコードをコピーしました。
そして私は得ました:
それ以外の:
ドキュメントに示されているように。
Windows 7でPython 2.6を使用しています
どうしたの?
python - オブジェクトがnamedtupleのインスタンスであるかどうかを確認する方法は?
オブジェクトがNamed tupleのインスタンスであるかどうかを確認するにはどうすればよいですか?
python - 多くの@プロパティでPythonのnamedtupleを拡張しますか?
名前付きタプルを多くの追加の @properties で拡張またはサブクラス化するにはどうすればよいですか?
いくつかは、以下のテキストを書くだけです。でもたくさんあるので、ジェネレーターかプロパティファクトリーを探しています。1 つの方法は、テキストを生成して実行する_fields
ことです。もう 1 つは、実行時に同じ効果を持つ add_fields です。
(私の @props は、データベース内の行とフィールドを複数のテーブルに分散して取得するためのものrec.pname
です。つまりpersontable[rec.personid].pname
、namedtuples-with-smart-fields には他の用途もあります。)
python - namedtuples _replace のより良い代替手段は何ですか?
次のコードを使用します。
parts._replace works
ただし、これは下線付きのメソッドであるため、内部で使用されるべきではありません。代替手段はありますか?私はしたくない:
これにより、名前付きタプルではなく通常のタプルになり、次のようにするためです。
ちょっとばかです。:)
アイデア?
python - 属性名またはインデックスオプションでアクセス可能な構造
私はPythonに非常に慣れていないので、属性名またはインデックスのいずれかでアクセスできる値を持つオブジェクトを作成する方法を理解しようとしています。たとえば、os.stat()がstat_resultを返す方法や、pwd.getpwnam()がstruct_passwdを返す方法です。
それを理解しようとして、私は上記のタイプのC実装にしか出くわしませんでした。特にPythonでは何もありません。この種のオブジェクトを作成するPythonネイティブの方法は何ですか?
これがすでに広くカバーされている場合は、お詫び申し上げます。答えを探す際に、答えを見つけることから私を排除しているいくつかの基本的な概念を見逃しているに違いありません。
python - Pythonの「名前付きタプル」とは何ですか?
Python 3.1での変更を読んで、私は何かを見つけました...予期しない:
sys.version_infoタプルは名前付きタプルになりました:
名前付きタプルについてはこれまで聞いたことがなく、要素は数値(タプルやリストなど)またはキー(dictなど)のいずれかでインデックス付けできると思いました。両方の方法でインデックスを作成できるとは思っていませんでした。
したがって、私の質問は次のとおりです。
- タプルとは何ですか?
- それらの使い方は?
- 通常のタプルの代わりに名前付きタプルを使用する必要があるのはなぜ/いつですか?
- 名前付きタプルの代わりに通常のタプルを使用する必要があるのはなぜ/いつですか?
- 「名前付きリスト」(名前付きタプルの変更可能なバージョン)はありますか?
python - サブクラス化を介してnamedtupleのコンストラクター引数を変更しますか?
namedtuple
短いビットフィールドで個々のフラグを表すを作成したいと思います。タプルが作成される前にビットフィールドをアンパックできるように、サブクラス化しようとしています。しかし、私の現在の試みは機能していません:
現在、私の経験super()
は限られており、私の経験__new__
は事実上存在しないので、(私にとって)謎めいたエラーをどうすればよいのかよくわかりませんTypeError: super.__new__(Status): Status is not a subtype of super
。グーグルでドキュメントを掘り下げても、啓蒙的なものは何も得られていません。
ヘルプ?
inheritance - Python では、1 回限りの名前付きタプルの場合、スーパー クラスを呼び出すにはどうすればよいですか?
そのため、シリアル API 用の多数のメッセージ ペイロード クラスがあり、それぞれに多数の不変フィールド、解析メソッド、および共有されるいくつかのメソッドがあります。私がこれを構築している方法は、それぞれがフィールドの動作の名前付きタプルから継承し、親クラスから共通のメソッドを受け取ることです。ただし、コンストラクターにはいくつかの問題があります。
これは機能しますが、次の警告が表示されます。
通話から外しても機能**kwargs
しているように見えますが、なぜですか? コンストラクターへのこれらの引数は、namedtuple にどのように渡されますか? これは保証されていますか、それとも mroが確立される方法のランダムな結果ですか?
スーパーから離れて古い方法でそれを行いたい場合、namedtuple にアクセスしてそのコンストラクターを呼び出す方法はありますか? 私はむしろこれを行う必要はありません:
冗長で不必要なようです。
ここでの私の最善の行動は何ですか?