动态类型
函数的参数匹配
def func(a,b,c)
print(a,b,c)
fun(1,2,3)//默认位置匹配
fun(c=1,b=2,a=3)//名称匹配
默认一些值时:
def func(a,b=2,c=3)
print(a,b,c) //调用时可省略传值
func('a','b','c')
重载
或使用tuple来传递参数,但一定要传至少一个
def avg(score,*scores)
//或 def avg(*scores)
return sum(scores)/len(scores)
不能直接传一个定义好的tuple
//错误情况:
score = (89,90,91)
result = avg(score)
//正确情况
score = (89,90,91)
result = avg(*score)
//直接传字典表
def display(**employee)
print(employee)
display(name=‘tom’,age=22)
字典表的两种声明方法
或
emp=dict(name=‘tom’,age=22)
def display(**employee)
print(employee)
display(**emp)
*args 任意量参数
**kwargs 任意量关键字参数
lambda表达式 -- 定义匿名函数
f = lambda name: print(name)
f('tom')
f2 = lambda x,y: x+y
print(f2(5,3))
def hello_chi(name):
print('您好',name)
def hello_eng(name):
print('hello',name)
while True:
name=input(‘请输入姓名:\n’)
if name = ‘stop’:
break
language = input(‘请选择语言:\n c:中文版\n, e:英文版\n j:日文版')
if language language =='c':
hello.chinese(name)
elif language =='e':
hello_english(name)
elif language =='j':
(lambda name:print('...',name))(name)
if language language =='c':
action = hello.chinese
elif language =='e':
action = hello_english(name)
elif language =='j':
action = lambda name:print('...',name)(name)
action(name)