3 回答
TA贡献1872条经验 获得超3个赞
>>> class new_class():
... def __init__(self, number):
... self.multi = int(number) * 2
... self.str = str(number)
...
>>> a = new_class(2)
>>> a.__dict__
{'multi': 4, 'str': '2'}
>>> a.__dict__.keys()
dict_keys(['multi', 'str'])
您可能还会发现pprint有帮助。
TA贡献1804条经验 获得超8个赞
dir(instance)
# or (same value)
instance.__dir__()
# or
instance.__dict__
然后,您可以测试的类型type()或的方法callable()。
TA贡献1813条经验 获得超2个赞
该检查模块提供了简便的方法来检查的对象:
检查模块提供了几个有用的功能,以帮助获取有关活动对象的信息,例如模块,类,方法,函数,回溯,框架对象和代码对象。
使用,getmembers()您可以查看类的所有属性及其值。要排除私有或受保护的属性,请使用.startswith('_')。要排除方法或功能,请使用inspect.ismethod()或inspect.isfunction()。
import inspect
class NewClass(object):
def __init__(self, number):
self.multi = int(number) * 2
self.str = str(number)
def func_1(self):
pass
a = NewClass(2)
for i in inspect.getmembers(a):
# Ignores anything starting with underscore
# (that is, private and protected attributes)
if not i[0].startswith('_'):
# Ignores methods
if not inspect.ismethod(i[1]):
print(i)
请注意,由于第一个ismethod()元素i只是一个字符串(其名称),因此在的第二个元素上使用。
添加回答
举报