在JES / Jython中将值从函数传递给函数

时间:2013-10-01 23:24:42

标签: jython jes

我正在使用一个名为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'那么它会存储该值以供以后使用。我在这里走错了路吗?当然有一种方法可以在函数之间传递信息吗?

2 个答案:

答案 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。