关于函数的一个小问问题
1.a = Function1 表示a 为一个函数,a= Function1()表示a为函数运行后的值吗2.那如果a = Function1(),a()表示什么呢,a()()呢 本帖最后由 jackz007 于 2019-11-20 11:16 编辑
def Function1(): # Function1() 的函数定义
def Function2(): # Function2() 的函数定义
print("I'm in Function2()") # Function2() 的语句
return Function2 # Function1() 的返回语句,返回的是内嵌函数 Function2() 的调用地址
a = Function() # 获取到 Function1() 的内嵌函数 Function2() 的调用地址
a() # 调用 Function1() 的内嵌函数 Function2(),也可以直接写 Function1()() 来达到同样的目的。
上面的代码中,蓝色部分属于函数 Function1(),红色部分属于 Function1() 的内嵌函数 Function2()。
正如上述,a() 是调用内嵌函数 Function2() ,a()() 纯属瞎胡闹。
a为函数返回值,a()、a()() 是会报错。
比如你的函数值是返回 8 。a的值就是8
再写a(),就无意义也报错。 你假设的函数返回值是什么东西呢? jackz007 发表于 2019-11-20 11:02
def Function1(): # Function1() 的函数定义
def Function2(): ...
按这个说法,假如Function2 又嵌套 Function3. 那a()() 就是调用嵌套函数Function3了。 本帖最后由 jackz007 于 2019-11-20 14:04 编辑
hjp808 发表于 2019-11-20 12:55
按这个说法,假如Function2 又嵌套 Function3. 那a()() 就是调用嵌套函数Function3了。
如果像你说的那样的话,所有函数必须这样定义:
def Function1(): # Function1() 的定义开始
def Function2(): # Function2() 的定义开始
def Function3(): # Function3() 的定义开始
print("I'm in Function3()") # Function3() 的语句
return Function3 # Function2() 的返回语句,返回 Function3() 的调用地址
return Function2 # Function1() 的返回语句,返回 Function2() 的调用地址
a = Function1()
a()() # 调用 Function3()
Function1()()() # 调用 Function3()
页:
[1]