Python3字符串格式赋值导致赋值前被引用

时间:2018-12-12 04:48:36

标签: python format-string

我了解在分配之前,有大量关于引用的帖子。

但是,我看到格式字符串也有类似的问题。

greeting = "hello, {}"

def printHello(name):
   greet = greeting.format(name)
   print(greet)

printHello("Erica")

我有local variable 'greet' referenced before assignment

谁能解释为什么会这样?

此外,此错误有时会发生一次,因此它不是确定性的...

我认为global greeting将解决此问题?

==已编辑==

我发现错误是来自库之一而不是我的代码 抱歉造成混乱

1 个答案:

答案 0 :(得分:5)

这里的问题是您已经重新定义了print,因此它是递归的。 将函数名称更改为其他名称应该可以解决问题

greeting = "hello, {}"

def printHello(name):
    greet = greeting.format(name)
    print(greet)