一、单个嵌套函数的调用
class MyClass(object):
def __init__(self):
pass
def FatherFunc(self,father_parameter:int):
def SonFunc1(Son_parameter1:int):
print(f"第1个子方法:{father_parameter*Son_parameter1}")
return SonFunc1
if __name__ == '__main__':
#创建类的实例
GetClass = MyClass()
#调用嵌套函数
SonFunc1 = GetClass.FatherFunc(666)
SonFunc1(1)
二、多个嵌套函数的调用
class MyClass(object):
def __init__(self):
pass
def FatherFunc(self,father_parameter:int):
def SonFunc1(Son_parameter1:int):
print(f"第1个子方法:{father_parameter*Son_parameter1}")
def SonFunc2(Son_parameter2:int):
print(f"第2个子方法:{father_parameter*Son_parameter2}")
return SonFunc1,SonFunc2
if __name__ == '__main__':
#创建类的实例
GetClass = MyClass()
#调用嵌套函数
SonFunc1,SonFunc2 = GetClass.FatherFunc(666)
SonFunc1(1)
SonFunc2(2)
三、递归函数的使用
def factorial(n):
if n == 0: # 基本情况
return 1
else:
return n * factorial(n - 1) # 递归情况
# 使用示例
print(factorial(5)) # 输出: 120
'''
在调用factorial(5)时,函数的执行过程大致如下:
factorial(5) 调用自身 factorial(4)。
factorial(4) 调用自身 factorial(3),以此类推。
当 n == 0 时,达到基本情况,开始返回。
从 factorial(0) 开始,逐级返回 1 给上一层。
上一层 factorial(1) 返回 1 * factorial(0),即 1 * 1,即 1。
继续返回 2 * 1,3 * (2 * 1),依次类推,直至最初的 factorial(5)返回5*(4*(3*(2*1))) 得到最终结果 120。
'''
四、匿名函数的使用
#name = lambda 参数 : 表达式
A = lambda x: "正确" if x+2==4 else "错误"
B = lambda x,y: x+y
C = lambda *args: args
print("函数A:",A(2))
print("函数B:",B(3,8))
print("函数C:",C(["我","是","咧","表"],"啊"))
D:\Python\python.exe E:\DqsjTwoExample\TemporaryNotes.py
函数A: 正确
函数B: 11
函数C: (['我', '是', '咧', '表'], '啊')