我正在使用一个名为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",那么它会存储该值以供以后使用。 我在这里走错了路吗? 肯定有一种方法可以在函数之间传递信息吗?
试试这个:
任何"-"都忽略它们不是代码的一部分,它们只是为了帮助间隔,这样你就不会得到任何语法错误。
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 或打印值。
我这样做的方式是在减少缩进之前,在def functionName()
后面的行和functionName()
代码的最后一行将其声明为全局变量,键入 return variableNameYouWant
。
检查这个:
def functionName()
global variableNameYouWant
..
..
return variableNameYouWant
我们这样做的目的是声明你想要的函数是一个全局变量(这必须在用值删除之前完成,所以最好在 def 的开头做),然后在你通过减少缩进来关闭 def 之前,返回 def 之外的变量。
我知道这是一个老问题,但我作为一个新手正在努力争取赞成票。 :)
编辑:感谢您的反对票,匿名。