python学习笔记9-函数1

# 函数参数不需要定义数据类型
def f(a,b)

# 1.默认参数
# 参数可定义默认值,默认参数必须指向不可变参数
def f(a,b=1)
def f(a, *b=1) # 会报错

# 2.可变参数
# *b为可变参数,b接收的是一个tuple,可以为空
# 调用可变参数时为空的情况
def func_args(a,*b):
    print(a,b)
func_args(1)
# 1 ()
# 调用可变参数时传入变量的情况
def func_args(a,*b):
    print(a,b)
c=[1,2,3,4]
func_args(1,c)
# 1 ([1, 2, 3, 4],)
# 注意:list变量c作为可变参数b的第一个元素输出
# 如果要使c(可以是tuple或list但输出都是tuple)作为元组本身输出,需传入*c
def func_args(a,*b):
    print(a,b)
c=[1,2,3,4]  # c=(1,2,3,4)也可以
func_args(1,*c)
# 1 (1, 2, 3, 4)

# 可变参数后只能跟关键字参数(即调用时需指定参数名)或者默认参数
# 可变参数跟关键字参数的情况
def func_args(a,*b,c):
    print(a,b,c)
func_args(1,c=1)
# 1 () 1
# 可变参数跟默认参数的情况
def func_args(a,*b,c=1):
    print(a,b,c)
func_args(1)
# 1 () 1

# 3.关键字参数
# **c是关键字参数,c接收的是一个dict
# 调用示例
def func_args(a, **c):
    print(a, c)
func_args(1, city='shanghai')   
d={'city':'shanghai'} 
func_args(1, **d)
# 1 {'city':'shanghai'}
# 关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值

猜你喜欢

转载自www.cnblogs.com/babysteps/p/python_note_9.html
今日推荐