Python自动化运维开发----基础(十七)类的反射

需求:

创新互联自2013年起,是专业互联网技术服务公司,拥有项目成都做网站、网站设计网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元兴宁做网站,已为上家服务,为兴宁各地企业和个人服务,联系电话:13518219792

因为最近在看python脚本脚本获取oracle数据库数据进行oracle数据库监控,需要用到反射的方式做,去通过传参调用不同函数去获取不同的数据库状态(python2)

#!/usr/bin/python
class Exucutsql(object):
    def status(self):
        print("active")
    def db(self):
        print("100M")
class Main(Exucutsql):
    def __init__(self):
        pass
    def __call__(self):
        method = raw_input("please input your method:")
        if hasattr(self,method):
            func = getattr(self, method)
            func()
        else:
            print("input method is not exits")
if __name__ == "__main__":
    Main()

说明:输入相应方法名会调用不用的方法

python类中的特殊方法

__call__() 方法会当作一个函数去执行

hasattr() 方法会判断在类中是否存在方法

getattr() 方法会去调用执行相应的函数名方法(解决了过多的IF判断的问题)


分享标题:Python自动化运维开发----基础(十七)类的反射
本文链接:http://bzwzjz.com/article/peijdg.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 网站设计 网站建设 响应式网站设计 专业网站设计 阿坝网站设计 成都网站制作 做网站设计 成都网站设计 响应式网站设计方案 企业网站建设公司 成都网站制作 成都网站建设 成都网站设计 四川成都网站制作 高端网站设计推广 网站建设费用 成都网站建设 网站建设公司 成都网站建设公司 外贸网站建设 成都网站建设 定制网站建设