命名关键字

# ### 命名关键字
‘‘‘
# 语法:
def func(参数1,参数2,*,参数3,参数4):
	pass
(1)在函数的定义处,* 号后面的参数就是命名关键字参数
(2)在函数的定义处,在普通收集参数和关键字收集参数之间的是命名关键字参数
def func(*arg,命名关键字参数,**kwargs)

命名关键字必须使用关键字实参的形式进行调用
‘‘‘
# 形式1
def func(a,b,*,c):
	print(a,b,c)
func(1,2,c=4)

# 形式2
‘‘‘
如果命名关键字指定了默认值,那么在调用时,
可以不指定实参.默认使用自己的值
‘‘‘
def func(a,b,*,c=5):
	print(a,b,c)
func(1,2,c=6)

# 形式3
def func(*arg,d,**kwargs):
	print(arg) # 1 2 23
	print(kwargs) # {c:1,f:2}
	print(d) # d = 3
func(1,2,23,c=1,f=2,d=3)
"""
(4)*和**的魔术用法:打包和解包
    *和**,在函数的定义处,负责打包(把实参都收集过来,放在元组或字典中)
    *和**,在函数的调用处,负责解包(把容器类型的数据,一个一个拿出来,进行传递)
"""

def func(a,b,c):
	print(a,b,c)

listvar = [1,2,3]
# *一般修饰列表更多一些 (负责把列表里面的元素一个一个拿出来的进行函数调用)
func(*listvar) # <==>  func(1,2,3)

def func(a,b,c,*,d,e,f):
	print(a,b,c)
	print(d,e,f)
listvar = [1,2,3]
dic = {"d":4,"e":5,"f":6} # func(d=4,e=5,f=6)
# **一般修饰字典,(负责把字典里面的键值对变成d=4,e=5的形式,进行函数调用)
func(1,2,3,**dic) # <==> d=4 , e = 5 , f = 6
# * 和 ** 的解包操作
func(*listvar,**dic)

# 函数参数的默认顺序:
‘‘‘
必须按照如下的参数顺序进行定义:
普通形参(位置形参) -> 默认形参 -> 普通收集参数 -> 命名关键字参数 -> 关键字收集参数
‘‘‘
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)

#(一)
# f1(1, 2) #a=1,b=2,c=0 args=(),kw={}
# f1(1, 2, c=3) #a=1,b=2,c=3,args=(),kw={}
# f1(1, 2, 3, ‘a‘, ‘b‘) #a=1,b=2,c=3,args=(a,b),kw={}
# f1(1, 2, 3, ‘a‘, ‘b‘, x=99) #a=1,b=2,c=3,args=(a,b),kw={‘x‘:99}
# f2(1, 2, d=99, ext=None) # a=1,b=2,c=0,d=99,kw={‘ext‘:None}

#(二)
args = (1, 2, 3, 4)
kw = {‘d‘: 99, ‘x‘: ‘#‘}
f1(*args, **kw) # a=1,b=2,c=3,args=(4,),kw={"d":99,"x":"#"}
# *args <==> f1(1,2,3,4)
# **kw <==> f1(d=99,x="#")

#(三)
def f2(a, b, c=0, *, d, **kw):
    print(‘a =‘, a, ‘b =‘, b, ‘c =‘, c, ‘d =‘, d, ‘kw =‘, kw)
myargs = (1, 2, 3)
mykw = {‘d‘: 88, ‘x‘: ‘#‘}
f2(*myargs, **mykw) #a=1,b=2,c=3,d=88,kw={"x":"#"}

#(四)
# 定义处
def f1(a, b, c=0, *args,d,**kw):
    print(‘a =‘, a, ‘b =‘, b, ‘c =‘, c, ‘args =‘, args, ‘kw =‘, kw)
    print(d)
# 调用处
f1(1,2,3, ‘a‘, ‘b‘,d=67, x=99,y=77)#a=1,b=2,c=3,args=(a,b) kw={x:99,y:77} d=67

# 普通收集形参 和 关键字收集形参 可以接受到所有种类的参数
# *args,**kwargs 都是可变长参数,参数的长度不限制
def func(*args,**kwargs):
	pass

  

原文地址:https://www.cnblogs.com/huangjiangyong/p/10829100.html

时间: 2024-10-18 07:37:45

命名关键字的相关文章

Python 必选参数,默认参数,可变参数,关键字参数和命名关键字参数

Py的参数还真是多,用起来还是很方便的,这么多参数种类可见它在工程上的实用性还是非常广泛的. 挺有意思的,本文主要参照Liaoxuefeng的Python教程. #必选参数 def quadratic(a, b, c): if not isinstance(a, (int, float)) or not isinstance(b, (int, float)) or not isinstance(c, (int, float)): raise TypeError('bad operand type

Python---函数---命名关键字参数

# 命名关键字参数 # 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数 # 至于到底传入了哪些,就需要在函数内部通过kw检查 # 仍以person()函数为例,我们希望检查是否有city和job参数 def person(name, age, **kw):     if 'city' in kw:         # 有city参数         pass     if 'job' in kw:         # 有job参数         pass     print('n

转: 命名关键字参数

如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数.这种方式定义的函数如下.命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数. def person(name, age, *, city, job): print(name, age, city, job) >>> person('Jack', 24, city='Beijing', job='Engineer') Jack 24 Beijing Engineer 转自:Pyth

参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。

在Python中定义函数,可以用必选参数.默认参数.可变参数.关键字参数和命名关键字参数,这5种参数都可以组合使用.但是请注意,参数定义的顺序必须是:必选参数.默认参数.可变参数.命名关键字参数和关键字参数. Python的函数具有非常灵活的参数形态,既可以实现简单的调用,又可以传入非常复杂的参数. 默认参数一定要用不可变对象,如果是可变对象,程序运行时会有逻辑错误! 要注意定义可变参数和关键字参数的语法: *args是可变参数,args接收的是一个tuple: **kw是关键字参数,kw接收的

命名关键字参数,函数对象,嵌套,名称空间与作用域,闭包

一.命名关键字参数 对于关键字参数,函数的调用者可以传入任意不受限制的关键字参数  .至于到底传入了哪些,就需要在函数内部通过kw检查. 仍以person()函数为例,我们希望检查是否有city和job参数: def person(name, age, **kw): if 'city' in kw: # 有city参数 pass if 'job' in kw: # 有job参数 pass print('name:', name, 'age:', age, 'other:', kw) 但是调用者仍

命名关键字参数

命名关键字参数:在定义函数时,*与**之间参数称之为命名关键字参数 特点: 在调用函数时,命名关键字参数必须按照key=value的形式传值 def func(x,*,y=1,z): print(x) print(y) print(z) func(1,z=2) 原文地址:https://www.cnblogs.com/xiamenghan/p/9709625.html

11.11函数对象,名称空间,作用域,命名关键字参数

函数对象 函数是一个对象 函数名可以被引用 函数名可以当做一个参数进行传参 函数名也可以当成返回值,但是不能加括号,不然会直接调用函数 函数名可以当做容器类的元素 函数的嵌套 就是函数内部定义或调用函数 例 def x(): print('x') def y(): print('y') y() x() 名称空间 内置名称空间 python解释器自带的名称空间,开机就有了 全局名称空间 打开python解释器后就形成的名称空间, 局部名称空间 函数内部的名称空间 查找顺序 先从局部查找,在查找全局

函数之命名关键字

原文地址:https://www.cnblogs.com/ioipchina/p/11167376.html

Python函数中的必选/默认/可变/关键字/命名参数

Python函数中的必选/默认/可变/关键字/命名参数 一.默认参数 def power(x, n=2): s = 1 while n > 0: n = n - 1 s = s * x return s n为默认参数,直接赋值 默认参数设置的两个注意事项: 1.必选参数在前,默认参数在后,否则会报错 2.当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面.变化小的参数就可以作为默认参数. 二.可变参数 在python中,如果我们需要传入不确定数目的参数,就可以利用可变参数 def ca