yanshanbei

目录

(Python的参数传递)

python的传递方式具有两种值传递和引用传递。除此之外,python中还允许包裹方式的参数传递,这未不确定参数个数和参数类型的函数调用提供了基础:

值传递

  • int、float等值传递
    **特点,区别于C语言参数需要一一对应
    #eg1: def f(a,b,c): print(a,b,c) return f(1,2,3) f(b=1,a=2,c=3)
    上面代码的运行结果是:
    1 2 3
    2 1 3

    引用传递

  • 以字典、列表等非值对象数据类型为代表
  • def f(*a,**b)
    *所对应的形参(如上面的a)会被解释为一个元组(tuple,而**所对应的形参(如上面的b)会被解释为一个字典。
    ```
    #eg2:
    def f(*a,**b):
    print(a)
    print(b)

    a=8
    b=4
    f(a,b,m=1,n=2)
    ```
    上面代码的运行结果是:
    (8 4)
    {'m': 1, 'n': 2}

可见,对于不使用关键字传递的变量,会被作为元组的一部分传递给*a,而使用关键字传递的变量作为字典的一部分传递给了**b。

python中规定非关键字传递的变量必须写在关键字传递变量的前面,所以混合使用*和**时肯定时*形参在**形参的前面,如def f(*a,**b);

分类:

技术点:

相关文章:

  • 2022-01-12
  • 2021-08-03
  • 2021-11-19
  • 2021-12-05
  • 2021-05-07
  • 2021-04-11
  • 2019-09-12
  • 2021-06-27
猜你喜欢
  • 2021-09-30
  • 2021-12-22
  • 2021-10-07
  • 2021-08-18
  • 2021-08-03
  • 2021-05-01
  • 2021-11-03
相关资源
相似解决方案