|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 lzb1001 于 2023-5-12 13:40 编辑
以下是小甲鱼在视频中的两个举例:
def FunX(x): # 定义函数FunX()
def FunY(y):: # 定义内部函数FunY()
return x * y
return FunY
def Fun1():
x = 5
def Fun2():
x *= x
return x
return Fun2() # 有括号()!
注意看:
1、第一个例子中def FunX(x)、def FunY(y),而第二个例子中def Fun1()、def Fun2(),我的疑问是:为何两个例子中一个括号内有参数、另一个括号内无参数?
2、第一个例子中return FunY ,第二个例子中return Fun2(),我的疑问是:为何两个例子中一个无括号,一个有括号?有什么区别?看下面第3个问题:
3、对第二个例子:
>>> Fun1() # 返回错误提示!
Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
Fun1()
File "<pyshell#52>", line 6, in Fun1
return Fun2()
File "<pyshell#52>", line 4, in Fun2
x *= x
UnboundLocalError: local variable 'x' referenced before assignment
如果将第二个例子改成:
def Fun1():
x = 5
def Fun2():
x *= x
return x
return Fun2 # 没有括号()!
则:
>>> Fun1()
<function Fun1.<locals>.Fun2 at 0x000001C8EB3329D8> |
|