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)
我收到此错误:
错误是:pic 全局未找到名称。 找不到本地或全局名称。在尝试以任何方式使用它之前,您需要定义函数或变量。 请查看C:\ Users \ nh_2109 \ Desktop \ s
的第15行
帮助:d
答案 0 :(得分:1)
您尚未在主要方法中定义pic
。
def main():
pic = choose()
negative(pic)
可能是您想要的,因为choose()
会返回Pic
类的实例。
答案 1 :(得分:0)
就像错误一样,你永远不会全局定义pic。 您从选择中返回图片,但您从未将其分配给任何内容。 将代码更改为
def main():
pic = choose()
negative(pic)
答案 2 :(得分:0)
您的问题是变量定义中的误解。
在choose()
结束时,您return pic
,但您没有将变量分配给任何内容。请注意,pic
中的变量choose()
和pic
中的negative()
是完全不同的变量,仅在函数运行时才存在。
要解决此问题,您需要在main()
内进行以下编辑:
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.
您是否理解函数参数与参数的概念?如果没有,我将添加到此并向您解释。