检查类/对象中的实例变量-如何?

我试着去了解反射/ Python自省.我怎么能识别属性的类型(如实例var)在一个类?以下返回所有的类属性(方法和实例var).但是我感兴趣的是确定每个案例的类型的值——(例如.我想单独识别实例变量).(检查模块有一个ismethod方法,但不是isinstancevariable方法).例如在接下来的例子中我想提取类varstrvar intNum和忽略/其它属性类型的方法.做这个最好的方法是什么?类测试:#假类反射测试strVar = ' 1234 'intNum = 0def nullmethod ():通过def调用addmethod(自我,v1、v2):v = v1 + v2返回vif __name__ = ="__main__":mytest =测试()关键的dir (mytest):值= getattr(对象、关键)"打印键:% s;值% s ' % (str(关键),str(值))

# 回答1

BrendanC写道:因为没有这样的东西,因为它不是一种* *.这是一个问题存储的值.每一个* *实例都有字典拿着它的数据.你可以正常访问它使用__dict__.但它不是"纯",只有创建的变量自己被包含.它还包含引用类.类,还有一个__dict__,包含了方法描述符和类变量.面对多重,事情变得更加复杂,因为这些值是通过MRO-lookup获得的.如果在mytest.__dict__名称:打印"实例变量"

标签: python

添加新评论