初识python - 函数(二)

5.3 函数小高级

a = 123
name = '老男孩好'
nums = [11,22,33,4]
data = nums

def func():
   pass # 100行代码

# func = 函数

 

5.3.1函数名当变量来使用

def func():
   print(123)
   
v1 = func

func()
v1()
def func():
   print(123)
   
func_list = [func, func, func]
# func_list[0]()
# func_list[1]()
# func_list[2]()
for item in func_list:
   v = item()
   print(v)
def func():
   print(123)

def bar():
   print(666)

info = {'k1': func, 'k2': bar}

info['k1']()
info['k2']()

混淆

def func():
   return 123

func_list1 = [func,func,func]
func_list2 = [func(),func(),func()]

print(func_list1)
print(func_list2)

info = {
   'k1':func,
   'k2':func(),
}

print(info)

 

5.3.2函数可以当做参数进行传参

def func(arg):
   print(arg)
   
func(1)
func([1,2,3,4])

def show():
   return 999
func(show)
def func(arg):
   v1 = arg()
   print(v1)
   
def show():
   print(666)
   
func(show)
def func(arg):
   v1 = arg()
   print(v1)
   
def show():
   print(666)
   
result = func(show)
print(result)

5.3.3 lambda表达式

用于表达简单的函数。

# 三元运算,为了解决简单的if else的情况,如:
if 1 == 1:
   a = 123
else:
   a = 456

a =  123  if 1 == 1 else 456

# lambda表达式,为了解决简单函数的情况,如:
def func(a1,a2):
   return a1 + 100

func = lambda a1,a2: a1+100

#lanbda+三元运算
func5 = lambda n1,n2: n1 if n1 > n2 else n2
v = func5(1111,2)
print(v)

 

猜你喜欢

转载自www.cnblogs.com/jhui104/p/11443816.html