Python 全局找不到名称代码错误
我得到这个错误: 错误是:pic 全局找不到名称。 找不到本地或全局名称。在尝试以任何方式使用函数或变量之前,需要先定义它。 请检查C:\Users\nh\u 2109\Desktop\s的第15行Python 全局找不到名称代码错误,python,Python,我得到这个错误: 错误是:pic 全局找不到名称。 找不到本地或全局名称。在尝试以任何方式使用函数或变量之前,需要先定义它。 请检查C:\Users\nh\u 2109\Desktop\s的第15行 帮助?:D您尚未在主方法中定义pic def choose(): file = pickAFile() pic = makePicture(file) return pic def negative(pic): for p in getPixels(pic): setRed
帮助?:D您尚未在主方法中定义
pic
def choose():
file = pickAFile()
pic = makePicture(file)
return pic
def negative(pic):
for p in getPixels(pic):
setRed(p, 255 - getRed(p))
setGreen(p, 255 - getGreen(p))
setBlue(p, 255 - getBlue(p))
explore(pic)
def main():
choose()
negative(pic)
可能是您想要的,因为
choose()
返回Pic
类的实例。就像错误所说的,您从不全局定义Pic。
您从choose返回pic,但从未将其分配给任何对象。
将代码更改为
def main():
pic = choose()
negative(pic)
您的问题是对变量定义的误解 在
choose()
的末尾,您返回pic
,但不将变量分配给任何对象。注意,choose()
中的变量pic
和negative()
中的pic
是完全不同的变量,只有在函数运行时才存在
要解决此问题,您需要在main()中进行以下编辑:
你了解函数参数和参数的概念吗?如果没有,我将对此进行补充并向您解释。我查看了您的代码并列出了一个修复程序,但我认为您可能会误解您的要求。如果你在我文章的最后仍然感到困惑,请告诉我,我会用更好的解释来修改。谢谢,你的解释太棒了:)你用什么运行代码来产生这样的错误消息?
def main():
pic = choose()
negative(pic)
def main():
picture = choose() #The "return pic" in "choose()" assigns picture = pic.
negative(picture) #You are passing "picture" into negative(), where inside the "negative()", pic = picture.