20180214:python 函数定义以及传参-形参/实参分不清以及可变参数

在初学C语言函数时,经常会遇到形参与实参的区别,参数的传递和改变,变量的作用域问题。

形参,即形式参数,在def关键字定义函数后,做为函数名之后的括号里的变量

实参,即实际参数,在调用函数时传的值或者变量

学习python,也可变通理解,举一个简单栗子说明:

>>> def add(x,y):                #形参

       return x+y

>>> add(100,200)               #实参

300

>>> add(x=100,y=200)           #实参

300

整个python函数的传参方式很简单,重点注意下可变参数

  1. 函数定义可变参数

>>> 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)

原文地址:https://www.cnblogs.com/hazelrunner/p/8446348.html