を拡張する小さなクラスがありますが、そのインスタンスnamedtuple
の__dict__
プロパティは常に空を返します。
Point = namedtuple('Point', 'x y')
p1 = Point(20, 15)
print(p1, p1.__dict__)
# Point(x=20, y=15) OrderedDict([('x', 20), ('y', 15)]) <--- ok
class SubPoint(Point): pass
p2 = SubPoint(20, 15)
print(p2, p2.__dict__)
# SubPoint(x=20, y=15) {} <--- why is it empty?
p2
属性がありますが、__dict__
空です。ただし、それらは で正しくリストされてdir()
いますが、これは奇妙です。SubPoint
バニラ クラスを拡張すると、これが正しく機能することに注意してください。
サブクラス インスタンスの属性を一覧表示するにはどうすればよいですか?