在 JES/Jython 中将值从一个函数传递到另一个函数



我正在使用一个名为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 之外的变量。

我知道这是一个老问题,但我作为一个新手正在努力争取赞成票。 :)

编辑:感谢您的反对票,匿名。

相关内容

  • 没有找到相关文章

最新更新