20180214:python 函数定义以及传参-形参/实参分不清以及可变参数
在初学C语言函数时,经常会遇到形参与实参的区别,参数的传递和改变,变量的作用域问题。
形参,即形式参数,在def关键字定义函数后,做为函数名之后的括号里的变量
实参,即实际参数,在调用函数时传的值或者变量
学习python,也可变通理解,举一个简单栗子说明:
>>> def add(x,y): #形参
return x+y
>>> add(100,200) #实参
300
>>> add(x=100,y=200) #实参
300
整个python函数的传参方式很简单,重点注意下可变参数
- 函数定义可变参数
>>> def func(*params): #params在函数体内类型是元祖
调用方式
>>> func(100,200,300)
>>> def func(**params): #params在函数体内类型是字典
调用方式
func(x=100,y=200,z=300)
2.一般的,可以用这两种可变参数使函数获得参数,衍生下列定义方式:
>>> def func(x,*args,**kwargs)
3.形参的两种特殊实参传递方式
(1)以元祖为实参
>>> def login(name, psw):
print 'login name is' +name
print 'login psw is' +psw
>>> if __name__ == "__main__":
account = ('Account','123')
login(*account)
(2)以字典为实参
>>> def login(name, psw):
print 'login name is' +name
print 'login psw is' +psw
>>> if __name__ == "__main__":
account = {'name':'Account','psw':'123'}
login(**account)