2019年8月18日 getattribue
# import test1 as obj#将tes同重命名为obj,并导入 # print(hasattr(obj,'name')) import sys obj=sys.modules[__name__] #__name__就是当前文件名 print(hasattr(obj,' x'))
class Foo: x=1 def __getattribute__(self, item):#不管是否能找到都会运行 print('执行的是getattribute') raise AttributeError('抛出异常')#抛出异常后,getattr才会去运行 def __getattr__(self, item): print('执行getattr') f1=Foo() print(isinstance(f1,Foo))#判断f1是否是Foo实例而来 class Bar(Foo): pass print(issubclass(Bar,Foo))#判断bar是否为foo的子类 print(f1.x)
》》》》》
True
True
执行的是getattribute
执行getattr
None
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步