python 基础知识补充

1,当函数参数数量不确定时,可以使用 *args**kwargs 做形参

*args 适用于一般类型的参数,应用举例:

def fun_var_args(farg, *args):
    print('args:', farg)
    for value in args:
        print('another arg:',value ) 

fun_var_args(1, 'two', 3, None) #method 1

myargs = ['two',3, None]   
fun_var_args(1,*myargs) #method2

**kwargs 适用于字典类型的参数,应用举例:

def fun_var_kwargs(farg, **kwargs):
    print('args:',farg)
    for key in kwargs:
        print('another keyword arg:%s:%s' % (key, kwargs[key]))

fun_var_kwargs(1, arg1=1, arg2=2, arg3=None) #method1
mykwargs = {'arg1': '1', 'arg2': 'two', 'arg3': None}      
fun_var_kwargs(1,**mykwargs) #method2

2,hasatrr 与 getattr 的使用:
hasattr 用于判断一个类或对象中是否含有某个函数,getattr 则返回该函数。应用实例:

class A:   
    def __init__(self):   
        self.name = 'zhangjing'  

    def method(self):   
        print("method print"  )

Instance = A()   
print(getattr(Instance , 'name', 'not find')) 
print(getattr(Instance , 'age', 'not find'))    
print(getattr(a, 'method', 'default') )   

b = getattr(a, 'method', 'default') 
b()

*******************************************
zhangjing
not find
<bound method A.method of <__main__.A object at 0x7f67b81ee828>>
method print

参考:
1, http://www.jb51.net/article/44104.htm
2, https://www.cnblogs.com/zhangjing0502/archive/2012/05/16/2503702.html

猜你喜欢

转载自blog.csdn.net/baidu_33939056/article/details/78643236