1.Funciones en Python
def testfunc():
return "hello,good boy"
cpufc=testfunc#将一个函数赋值给一个变量
print(cpufc)
print(cpufc())#调用函数
La salida es:
<function testfunc at 0x000001E1940E85E8>
hello,good boy
2. Defina la función en la función
def testfunc():
def func1():
return "This is func1"
def func2():
return "This is func2"
print(func1())
print(func2())
print("Now you are back in testfunc()")
testfunc()
This is func1
This is func2
Now you are back in testfunc()
testfunc1 () y testfunc2 () no son accesibles fuera de la función testfunc ().
Por ejemplo:
llamar a func1 () fuera de la función testfunc () reportará un error:
NameError: el nombre 'func1' no está definido
3. Devolver una función de una función
def testfunc(n):
print("Now you are in testfunc()")
def func1():
return "This is func1"
def func2():
return "This is func2"
return func1 if n==1 else func2
tt=testfunc(1)
print(tt)
print(tt())
#Now you are in testfunc()
#<function testfunc.<locals>.func1 at 0x000001FDE78EBCA8>
#This is func1
En la instrucción if / else, devuelva func1 y func2 en lugar de func1 () y func2 (). Cuando pones un par de paréntesis después, esta función se ejecutará; si no pones el paréntesis después, se puede pasar y se puede asignar a otras variables sin ejecutarla.
Al escribir tt = testfunc (1), se ejecutará testfunc () y se devolverá la función func1.
Al escribir tt () que es testfunc () (), la salida es: This is func1
4. Pasar una función como parámetro a otra función
def func1():
return "This is func1"
def func2(func):
print("This is func2")
print(func)
func2(func1)
print("*"*10)
func2(func1())
# This is func2
# <function func1 at 0x0000020F9AC88048>
# **********
# This is func2
# This is func1