[解決済み] namedtupleにdocstringを追加する?
2023-03-11 09:22:15
質問
namedtupleにドキュメント文字列を簡単に追加することは可能でしょうか?
私は試しました。
from collections import namedtuple
Point = namedtuple("Point", ["x", "y"])
"""
A point in 2D space
"""
# Yet another test
"""
A(nother) point in 2D space
"""
Point2 = namedtuple("Point2", ["x", "y"])
print Point.__doc__ # -> "Point(x, y)"
print Point2.__doc__ # -> "Point2(x, y)"
となっていますが、これでは切れません。何か他の方法で可能でしょうか?
どのように解決するのですか?
から返される値の周りに、シンプルで空のラッパークラスを作成することでこれを実現することができます。
namedtuple
. 私が作成したファイルの内容 (
nt.py
):
from collections import namedtuple
Point_ = namedtuple("Point", ["x", "y"])
class Point(Point_):
""" A point in 2d space """
pass
次にPython REPLで。
>>> print nt.Point.__doc__
A point in 2d space
とすることもできます。
>>> help(nt.Point) # which outputs...
モジュール nt のクラス Point のヘルプです。 クラスPoint(Point) | 2次元空間上の点 | | メソッドの解決順序 | 点 | 点 | __builtin__.tuple | __builtin__.object ...
毎回手作業でやるのが嫌なら、これを行うためのある種のファクトリ関数を書くのは些細なことです。
def NamedTupleWithDocstring(docstring, *ntargs):
nt = namedtuple(*ntargs)
class NT(nt):
__doc__ = docstring
return NT
Point3D = NamedTupleWithDocstring("A point in 3d space", "Point3d", ["x", "y", "z"])
p3 = Point3D(1,2,3)
print p3.__doc__
と出力します。
A point in 3d space
関連
-
[解決済み] 既存のDataFrameに新しい列を追加する方法は?
-
[解決済み] pandasを使った "大量データ "ワークフロー【終了しました
-
[解決済み] 2次元アレイにおけるピーク検出
-
[解決済み] Project Eulerとの速度比較。CとPythonとErlangとHaskellの比較
-
[解決済み] Python / NumPyのmeshgridは何のためにあるのですか?
-
[解決済み】Pythonで文字列がリストの要素を含むかどうかをチェックする方法
-
[解決済み】タイムデルタを日、時間、分に変換する
-
[解決済み】pipを使用してパッケージを更新/アップグレードする方法は?
-
[解決済み] Pandasのデータフレームでタプルの列を分割するにはどうしたらいいですか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] スロットの使い方__?
-
[解決済み] Pythonです。未束縛のメソッドを束縛する?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] タプルのリストを複数のリストに変換するには?
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] Python Empty Generator 関数