Python的函数参数传递
示例一:
|
|
示例二:
|
|
示例三:
|
|
总结:
对象有两种,“可更改”(mutable)与“不可更改”(immutable)对象。在python中,strings, tuples, 和numbers是不可更改的对象,而list,dict等则是可以修改的对象。对于不可更改对象而言一定是“值传递”引用,如示例一;对于可更改对象也可以“值传递”,如示例三;对于示例二,传入的是可变对象,并且函数对其进行操作,属于“引用传递”。
函数参数的定义有四种形式:
F(arg1,arg2,…)
F(arg2=,arg3=…)
F(*arg1)
F(**arg1)
|
|
首先按顺序把“arg”这种形式的实参给对应的形参;
第二,把“arg=”这种形式的实参赋值给形参;
第三,把多出来的“arg”这种形式的实参组成一个tuple给带一个星号的形参;
第四,把多出来的“key=value”这种形式的实参转为一个dictionary给带两个星号的形参。