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)