Как получить все атрибуты в Python для класса, который наследуется от named_tuple
У меня есть класс Python, который я наследую от именованного кортежа. Я добавляю еще один атрибут к его экземпляру
from collections import namedtuple
class Test(namedtuple("Test", ('a', 'b', 'c', 'd', 'e'))):
pass
T = Test(1,2,3,4,5)
T.list = [ 1,2,3,4,5,6,7,8]
Таким образом, T имеет 6 атрибутов: a,b,c,d,e,list. Есть ли способ напечатать все атрибуты с помощью одной команды? "T.__dict" дает мне только атрибут "list". "T.__fields" дает мне все поля namedtuple.
Я не думаю, что полностью понимаю, что делает наследование от namedtuple.
1 ответ
С использованием dir(T)
Команда напечатает все атрибуты (включая встроенные, атрибуты класса) T.
from collections import namedtuple
class Test(namedtuple("Test", ('a', 'b', 'c', 'd', 'e'))):
pass
T = Test(1,2,3,4,5)
T.list = [ 1,2,3,4,5,6,7,8]
print dir(T)
выход:
[' добавить ', ' класс ', ' содержит ', ' delattr ', ' dict ', ' doc ', ' eq ', ' format ', ' ge ', ' getattribute ', ' getitem ', ' getnewargs ', ' getslice ',' getstate ',' gt ',' hash ',' init ',' iter ',' le ',' len ',' lt ',' module ',' mul ',' ne ',' new ', ' lower ', ' redu_ex ', ' repr ', ' rmul ', ' setattr ', ' sizeof ', ' slots ', ' str ', 'subclasshook', '_asdict', '_fields', '_make', ' _replace ',' a ',' b ',' c ',' count ',' d ',' e ',' index ',' list ']