07-参数

参数问题

缺省参数

def fun(name ,age = 18)

参数未传入使用默认值

不定长参数

    1. 处理比声明时更多的参数 不定长参数 声明时不会命名。
      python
      def fun([formal_args,]*args,**kwargs)
      function_suite
      return [expression]

      加了(*) 的变量args会存放所有未命名的变量参数,args为元组
      加了(**) 变量kwargs会存放命名参数,即 key = value的参数, kwargs 为字典 —- 拆包

引用传参

  • 可变类型与不可变类型的变量分别作为函数时会有什么不同吗?
  • Python有没有类似C语言中的指针传参呢?
In [1]: def selfAdd(a):
   ...:     '''自增'''
   ...:     a += a
   ...:     

In [2]: a_int = 1

In [3]: a_int
Out[3]: 1

In [4]: selfAdd(a_int)

In [5]: a_int
Out[5]: 1

In [6]: a_list = [1,2]

In [7]: a_list
Out[7]: [1, 2]

In [8]: selfAdd(a_list)

In [9]: a_list
Out[9]: [1, 2, 1, 2]

In [10]: 

Python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身。而对于可变类型来说,函数体中的运算有可能会更改传入的参数变量.

你可能感兴趣的:(python)