如何为继承自 named_tuple 的 class 获取 python 中的所有属性
How to get all the attributes in python for a class that inherits from a named_tuple
我有一个 python class 是我从命名元组继承的。我将另一个属性添加到它的实例
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 继承的作用。
使用dir(T)
命令将打印T的所有属性(包括内置,class属性)
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)
输出:
['add', 'class', 'contains', 'delattr', 'dict', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs', 'getslice', 'getstate', 'gt', 'hash', 'init', 'iter', 'le', 'len', 'lt', 'module', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'rmul', 'setattr', 'sizeof', 'slots', 'str', 'subclasshook', '_asdict', '_fields', '_make', '_replace', 'a', 'b', 'c', 'count', 'd', 'e', 'index', 'list']
我有一个 python class 是我从命名元组继承的。我将另一个属性添加到它的实例
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 继承的作用。
使用dir(T)
命令将打印T的所有属性(包括内置,class属性)
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)
输出:
['add', 'class', 'contains', 'delattr', 'dict', 'doc', 'eq', 'format', 'ge', 'getattribute', 'getitem', 'getnewargs', 'getslice', 'getstate', 'gt', 'hash', 'init', 'iter', 'le', 'len', 'lt', 'module', 'mul', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'rmul', 'setattr', 'sizeof', 'slots', 'str', 'subclasshook', '_asdict', '_fields', '_make', '_replace', 'a', 'b', 'c', 'count', 'd', 'e', 'index', 'list']