Python3 字符串格式赋值导致赋值前被引用
Python3 string format assignment lead to referenced before assignment
我知道有很多关于在赋值前引用的帖子有增量。
但是,我发现格式字符串也有类似的问题。
greeting = "hello, {}"
def printHello(name):
greet = greeting.format(name)
print(greet)
printHello("Erica")
我有 local variable 'greet' referenced before assignment
.
谁能解释为什么会这样?
另外,这个错误偶尔会出现,所以它不是确定性的...
我想 global greeting
会解决这个问题?
== 已编辑 ==
我发现错误来自某个库而不是我的代码
抱歉混淆
这里的问题是您重新定义了 print
,因此它正在进行递归。
将函数名称更改为其他名称,应该可以解决问题
greeting = "hello, {}"
def printHello(name):
greet = greeting.format(name)
print(greet)
我知道有很多关于在赋值前引用的帖子有增量。
但是,我发现格式字符串也有类似的问题。
greeting = "hello, {}"
def printHello(name):
greet = greeting.format(name)
print(greet)
printHello("Erica")
我有 local variable 'greet' referenced before assignment
.
谁能解释为什么会这样?
另外,这个错误偶尔会出现,所以它不是确定性的...
我想 global greeting
会解决这个问题?
== 已编辑 ==
我发现错误来自某个库而不是我的代码 抱歉混淆
这里的问题是您重新定义了 print
,因此它正在进行递归。
将函数名称更改为其他名称,应该可以解决问题
greeting = "hello, {}"
def printHello(name):
greet = greeting.format(name)
print(greet)