可变参数和不可变参数
在 python 中,strings, tuples, 和 numbers 是不可更改的对象。
而 list,dict 等则是可以修改的对象。
def test(list_arg):
print("hello"+str(list_arg[0]))
list_arg[0] += 1
list0 = [3]
test(list0)
print(list0)
hello3
[4]
不定长参数
元组参数
加了星号 *
的参数会以 元组(tuple)
的形式导入,存放所有未命名
的变量参数。
def printinfo( arg1, *vartuple ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vartuple)
# 调用printinfo 函数
printinfo( 70, 60, 50 )
输出:
70
(60, 50)
字典参数
两个星号 **
的参数会以字典
的形式导入
def printinfo( arg1, **vardict ):
"打印任何传入的参数"
print ("输出: ")
print (arg1)
print (vardict)
# 调用printinfo 函数
printinfo(1, a=2,b=3)
输出:
1
{'a': 2, 'b': 3}
使用函数作为参数
使用函数当做入参,函数本身包含不确定个数的入参
def run(func, a, *args):
print(a)
func(*args)
def plus(*args):
temp = 0
for i in args:
temp += i
print(temp)
run(plus, 100, 1, 2, 3, 4)
100
10
匿名(闭包)函数 lambda
Lambda 表达式(lambda expression)是一个匿名函数,基于数学中的λ演算得名,直接对应于其中的lambda抽象(lambda abstraction),即没有函数名的函数。Lambda表达式可以表示闭包。
匿名函数实现 switch-case 语句:
switch = {
"a":lambda x:x*2,
"b":lambda x:x*3,
"c":lambda x:x**x
}
try:
swtich["c"](6)
except KeyError as e:
print("引发异常:",repr(e))
pass
python使用函数作为参数 https://www.cnblogs.com/meitian/p/6756665.html
Python3 函数 https://www.runoob.com/python3/python3-function.html
python的switch-case https://www.cnblogs.com/vawter/p/5943834.html