def empty(): # 不传参函数
print("参数为空")
empty()
print("--" * 50)
def key_parameter(name, age): # 关键参数,必传,并且对应
print("name:%s" % name)
print("age:%s" % age)
key_parameter("aaa", 18) # 一一对应传入实参
key_parameter(age=18, name="bbb") # 指定名称传入实参
print("--" * 50)
def default_parameter(name, age, sex="男"): # 默认参数,不传时使用默认值,传参时使用传递参数
print("name:%s" % name)
print("age:%s" % age)
print("sex:%s" % sex)
default_parameter("aaa", 18)
default_parameter("ccc", 20, "女")
print("--" * 50)
def add(*args): # 不定长参数传递一个元组参数
print(sum(args))
add(1, 2, 3)
print("--" * 50)
def print_info(**kwargs): # 不定长参数传递一个字典
for i in kwargs:
print("%s : %s" % (i, kwargs[i]))
print_info(name="aa", age=18, sex="男")
print("--" * 50)
def print_info_priority(name, sex="男", *args, **kwargs): # 型参的优先级: 关键参数 > 默认参数 > 不定长参数(* > **)
print("name :%s" % name)
print("sex :%s" % sex)
for j in args:
print(j)
for i in kwargs:
print("%s : %s" % (i, kwargs[i]))
print_info_priority('www', "男", 1, 2, 3, bobby="basketball", age=18) # 传递参数也必须对应优先级,'www':关键参数,"男":默认参数, 1, 2, 3:不定长*参数, bobby="basketball", age=18 :不定长**参数
print("--" * 50)
def print_info_return(**kwargs): # 不定长参数传递一个字典
for i in kwargs:
print("%s : %s" % (i, kwargs[i]))
'''return 返回参数:
1、函数已return结束,return后面的不会执行,如果没写return默认会加 return None
2、return返回的是一个对象,当有多个对象的时候是已元组的方式返回的一个对象
'''
return kwargs
info_return = print_info_return(name="aa", age=18, sex="男") # return返回值的接收
print(info_return)
def f1(*args):
print(args)
f1(*[1, 2, 3]) # 当一个列表作为参数是,前面加*号可以表示传了多个参数,而不是作为一个参数传递
print("--" * 50)
def f2(**kwargs):
print(kwargs)
f2(**{"name": "aaa"}) # 当一个字典作为参数时,前面加**号可以表示传了多个参数,而不是作为一个参数传递
print("--" * 50)
def f3(n):
return n*n
def f4(a, b, c):
sum_f4 = c(a)+c(b)
return sum_f4
print(f4(1, 3, f3)) # 函数可以作为变量名传递,函数的参数名保存的是函数的地址,可以进行函数调用
print("--" * 50)
def f5():
def f6():
return 20
return f6
print(f5()())