Skip to content

python_getattr

遇见王斌 edited this page Aug 14, 2017 · 4 revisions

__getattr__

__getattr__ 为内置方法,当使用点号获取实例属性时,如果属性不存在就自动调用__getattr__方法

#!/usr/bin/python
#coding=utf8
#定义一个测试类  
class MyClass:  
    #重点在这里!  
    def __getattr__(self, name):    #读取类属性时候实际上就是调用这个函数  
        print "the function name:",name
            
        def wrap(**kw):  
            print kw  
        #这里返回的是函数!!!!  
        return wrap  
#实例化MyClass类  
c = MyClass()  
#调用之前并未定义的Test方法  
kwargs={"meetbill":"wangbin"}
c.Test(**kwargs) 

: 此方法在[ZabbixTool/lib_zabbix/w_lib/zabbix_api_lib.py]中使用

*args 和 **kwargs是python中的可变参数。*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict