沙滩星空的博客沙滩星空的博客

python函数的使用

可变参数和不可变参数

在 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

未经允许不得转载:沙滩星空的博客 » python函数的使用

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址