需求:
因为最近在看python脚本脚本获取甲骨文数据库数据进行甲骨文数据库监控,需要用到反射的方式做,去通过传参调用不同函数去获取不同的数据库状态(python2)
# !/usr/bin/python 类Exucutsql(对象): def状态(自我): 打印(“活跃”) def db(自我): print (“100”) 类主要(Exucutsql): def __init__(自我): 通过 def __call__(自我): 方法=raw_input(“请输入方法:”) 如果hasattr(自我、方法): func=getattr(自我,方法) 函数() 其他: 打印(“输入法不是出口”) if __name__==癬_main__”: Main ()
说明:输入相应方法名会调用不用的方法
python类中的特殊方法
__call__()方法会当作一个函数去执行
hasattr()方法会判断在类中是否存在方法
getattr()方法会去调用执行相应的函数名方法(解决了过多的如果判断的问题)