python-函数进阶

  1. 按参数位置传参
  2. 按参数名关键字传参
  3. 使用不定长-位置参数传参
  4. 使用不定长-包裹关键字(字典)传参
  5. 匿名函数

按参数位置传参

按照函数定义中的参数位置,传入对应参数值

def say_hello(age,name="Milton"): # 默认值参数必须在没有默认值参数的后面,否则出错
    print("Hello,{user}. I am {age} years old".format(user=name,age=age))

say_hello(18,"Cherish") # 必须按照函数定义中的参数位置,对应传入值
say_hello(28)           # 第二个参数有默认值,允许不传值

按参数名关键字传参

函数调用时,通过“键-值”形式加以指定

def say_hello(age,name): 
    print("Hello,{user}. I am {age} years old".format(user=name,age=age))

say_hello(age=16,name="Evan")
say_hello(name="Evan",age=16)
say_hello(18,name="Milton")

使用不定长-位置参数传参

def say_hello(*args):
    """传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组(tuple),args是元组类型"""
    print(args)

say_hello("Milton","Cherish","Evan") # 不定长位置参数传参

data=("Milton","Cherish","Evan")
say_hello(*data)                     # 元組解包裹传参

使用不定长-包裹关键字(字典)传参

def say_hello(**kwargs):
    """ 根据传递进来的关键字参数,打包成一个字典,kwargs是字典类型"""
    print(kwargs)

say_hello(name="Milton",age=31,sex="M")        # 不定长关键字传参

data={'name': 'Cherish', 'age': 18, 'sex': 'G'}
# 字典需要解包传参
say_hello(**data)                              # 字典解包裹传参

匿名函数

有一种特殊的函数,叫匿名函数,它可以不用定义直接使用

格式:lambda 参数:操作(参数)

f=lambda x:x+1
f(1) # 调用匿名函数

lambda语句中,冒号前是参数,可以有多个,用逗号隔开,冒号右边的是返回值


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
My Show My Code