我正在使用一个名为JES的程序学习Jython,我无法理解如何从可以在另一个函数中使用的函数返回值。
例如:
def driver():
picture = makePicture(pickAFile())
input(picture)
changeRed(picture, reduceRedAmount)
def input(picture):
redReduceAmount = requestInteger("How much should I reduce red by?")
return redReduceAmount
def changeRed(picture, reduceRedAmount):
for p in getPixels(picture):
value=getRed(p)
setRed(p,value*0.9)
我希望能够在命令区域中运行驱动程序功能,并使该功能包含其他功能。我知道函数的结果是本地的并且不会通过,但是如果你使用'return'那么它会存储该值以供以后使用。我在这里走错了路吗?当然有一种方法可以在函数之间传递信息吗?
答案 0 :(得分:0)
试试这个:
任何“ - ”只是忽略它们不是代码的一部分,它们只是间隔帮助,以便你不会得到任何语法错误。
def driver():
picture = makePicture(pickAFile())
input(picture)
changeRed(picture, reduceRedAmount)
repaint(picture)`
或
def changeRed(picture, reduceRedAmount):
for p in getPixels(picture):
value=getRed(p)
setRed(p,value*0.9)
repaint(picture)
或
def changeRed(picture, reduceRedAmount):
for p in getPixels(picture):
value=getRed(p)
setRed(p,value*0.9)
show(picture)
或
def changeRed(picture, reduceRedAmount):
for p in getPixels(picture):
value=getRed(p)
setRed(p,value*0.9)
return(picture)`
其中一个重绘,返回,显示应该可以显示新图像。
要在命令区域中显示其他值,只需使用“在此处打印”,例如打印1 + 1或打印值。
答案 1 :(得分:-1)
我这样做的方法是将def functionName()
之后的行声明为全局变量,并在减少缩进之前在functionName()
代码的最后一行,键入return variableNameYouWant
。
检查一下:
def functionName()
global variableNameYouWant
..
..
return variableNameYouWant
我们通过以下方式做的是声明你想要成为一个全局变量的函数(必须在它与值一起被删除之前完成,所以最好在def的开头做。)然后在你之前通过减少缩进来关闭def,将变量返回到def之外。
我知道这是一个古老的问题,但我正努力争取新手的赞成。 :)
编辑:感谢downvote,anon。