Python---函数---参数组合

# 参数组合
# 在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数
# 这5中都可以组合使用
# 参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

# 比如定义一个函数,包含上述若干种参数

def f1(a, b, c=0, *args, **kw):
    print(‘a = ‘, a, ‘b = ‘, b, ‘c = ‘, c, ‘args =‘, args, ‘kw =‘, kw)

def f2(a, b, c=0, *, d, **kw):
    print(‘a =‘, a, ‘b =‘, b, ‘c =‘, c, ‘d =‘, d, ‘kw =‘, kw)

# 在函数调用的时候,Python解释器自动按照参数位置和参数名把对应的参数传进去
f1(1, 2)
f1(1, 2, c=3)
f1(1, 2, 3, ‘a‘, ‘b‘)
f1(1, 2, 3, ‘a‘, ‘b‘, x=99)
f2(1, 2, d=99, ext=None)

# 通过一个tuple和dict,也可以调用上述函数
args = (1, 2, 3, 4)
kw = {‘d‘: 99, ‘x‘: ‘#‘}
f1(*args, **kw)

args = (1, 2, 3)
kw = {‘d‘: 88, ‘x‘: ‘#‘}
f2(*args, **kw)

# 所以,对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的
时间: 2024-08-06 03:46:25

Python---函数---参数组合的相关文章

Python函数参数默认值的陷阱和原理深究(转)

add by zhj: 在Python文档中清楚的说明了默认参数是怎么工作的,如下 "Default parameter values are evaluated when the function definition is executed. This means that the expression is evaluated once, when the function is defined, and that the same “pre-computed” value is used

python函数参数改变问题

python函数参数改不改变的问题 前几天在做项目的过程中发现了一个问题,向函数中传入一个list,在函数体内将其赋值给list,对list1操作后发现list也发生了变化,啊 ! 出乎意料.查了一下原因,原来python里有可变对象和不可变对象之分.只有传入的是不可变对象时,值才不发生改变,若是可变对象,充当函数参数时要注意了. 不可变对象:Number ,String , Tuple,bool 可变对象: List , Set , Dictionary是可以改变内部的元素 下面总结一下: 先

Python 函数参数类型大全(非常全!!!)

Python 函数参数类型大全(非常全!!!) 1.在python编写程序里面具有函数文档,它的主要作用是为了让别人可以更好的理解你的函数,所以这是一个好习惯,访问函数文档的方式是: MyFunction.__doc__ 2.python编写程序函数的时候具有两类参数: 形式参数(形参)及其实际参数(实参). 跟绝大部分编程语言一样,形参指的是函数创建和定义过程中小括号里的参数,而实参指的是函数在调用过程中传递进去的参数. 3.关键字参数,是指函数在调用的时候,带上参数的名字去指定具体调用的是哪

python函数参数类型及其顺序

根据inspect模块官文文档中关于函数参数类型的相关说明,python函数参数共有五种类型,按顺序分别为:POSITIONAL_ONLY.POSITIONAL_OR_KEYWORD.VAR_POSITIONAL.KEYWORD_ONLY.VAR_KEYWORD.如图: POSITIONAL_ONLY:参数值必须以位置参数的形式传递.python没有明确的语法来定义POSITIONAL_ONLY类型的参数,但很多内建或扩展模块的函数中常常会接收这种参数类型,实际使用中不多见,这里暂不考虑. PO

python 函数参数的传递(参数带星号的说明) 元组传递 字典传递

python 函数参数的传递(参数带星号的说明) 元组传递 字典传递 *arg 代表的是arg元祖,**kwd代表的是kwd名称的字典. 那函数传参数或是使用参数的时候,什么时候带*号什么时候不带*号呢?我这点总是理解不上来,或者说有点混乱.参考下面几个小函数,来理解下 >>> def a(*x): print (x) >>> def b(x): print(x) >>> def c(*x): print(*x) >>> x = (1

python函数参数理解

1.位置参数 函数调用时,参数赋值按照位置顺序依次赋值. e.g. 1 def function(x): 2 3 return x * x 4 5 print function(2) 输出结果: 4 1 def function(x, n): 2 3 return x / n 4 5 print function(4, 2) 输出结果: 2 2.默认参数 在函数定义时,直接指定参数的值. e.g. 1 def function(x, n = 2): 2 3 s = 1 4 5 while n >

Python函数参数全面介绍

本文主要介绍Python的函数参数,各种形式的参数.建议动手试试,可以加深理解. 函数参数 定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂的逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 默认参数 默

python函数参数

函数传参 动态参数 位置参数的动态参数:*args 关键字参数的动态参数:**kwargs 顺序: 位置参数>*args>默认值参数>**kwargs 1.位置参数 def fun(a): #print(args) return a print(fun(3)) #3 对于函数fun(a),参数a就是一个位置参数. 当我们调用函数时,必须传入仅有的一个参数x def fun(a,b): x = a**b return x print(fun(x)) a和b这个两个参数就是位置参数,传人连个

Python函数参数详解

  Python函数定义时参数灵活,使用不同参数的组合不仅可以简化调用者的代码,还可以处理复杂的参数.函数的参数除了有必选参数外,还可以使用默认参数,可变参数,关键字参数和命名关键字参数. 位置参数 定义一个计算x^2的函数,以及一个计算x^n的函数 def calc1(x): return x * x def calc2(x, n): s = 1 for i in range(n): s *= x return s 对于这两个函数,其参数都是位置参数,同时也是必选参数,调用函数时实参需和形参一

Python函数参数总结

# -*- coding: utf-8 -*- #整理一下Python函数的各种参数类型 #参考资料:http://www.liaoxuefeng.com/ #位置参数 #调用函数时,传入的两个值按照位置顺序依次赋给参数 def power(x, n): s = 1 while n > 0: n = n - 1 s = s * x return s print(power(5, 2)) #默认参数 #简化函数的调用 def power(x, n = 2): s = 1 while n > 0: