属性
class A():
a = 1
求值 1
A . a ( 类.类属性 )
-> 1
求值2
getattr( A,’a’ ) getattr( 类 ,’类属性’ )
-> 1
方法
class B():
def func( self ): ( 实例方法 )
return ‘getattr_getattr_getattr’
@classmethod
def func( cls ): ( 类方法 )
return ‘getattr_getattr_getattr’
求值
b_obj = B() ( #因为上述是实例方法(self),如果是定义了类方法,则不需要实例化。 )
getattr( b_obj,’func’ ) ( #获取方法,存在则打印内存地址。 )
-> ‘bound method classobj.ee of class main.test at 0x7fef7b338ef0>’getattr( b_obj,’func’ )( ) ( #运行方法 )
-> ‘getattr_getattr_getattr’