有没有办法循环遍历属性,而无需重新输入长名称?
我试图打印存储在对象中的值。问题是我不知道哪个属性存储了值,甚至不知道属性是什么。我使用dir(MyFunc)
来查找属性是什么,但每次都有越来越多的属性需要查看。
>>> print dir(MyFunc)
['__class__', '__delattr__', '__dict__', '__doc__', '__format__',
'__getattribute__', 'data']
>>> print dir(MyFunc.data)
['__call__', '__class__', '__closure__', '__code__', '__defaults__',
'__delattr__', '__dict__', '__doc__', '__format__', '__get__',
'__getattribute__', '__globals__', '__hash__', '__init__', '__module__',
'__name__', '__new__', '__reduce__', '__reduce_ex__', '__repr__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'func_closure',
'func_code', 'func_defaults', 'func_dict', 'func_globals', 'func_name']
所以我尝试使用for循环来打印每个属性的属性,但我无法找到如何执行此操作。
>>> for x in ['func_closure','func_code','func_defaults','func_dict']:
y = MyFunc.data.x
print y
Traceback (most recent call last):
File "myFile.py", line 127, in setUp
y = MyFunc.data.x
AttributeError: 'function' object has no attribute 'x'
答案 0 :(得分:0)
使用getattr
for x in ['func_closure','func_code','func_defaults','func_dict']:
y = getattr(MyFunc.data,x)
print y