我是python的新手。
我不太理解如何在稍后使用的函数中设置变量和更改它们。我的脚本需要从函数中获取x和y值,这些值由该函数创建的图表的大小决定。这些变量需要稍后在脚本中传递给打印命令以输出html。假设我有全局变量:
originx_pct = 0.125
originy_pct = 0.11
但当函数运行时,这些将需要更改...
def makeplot(temp, entropy,preq):
originx_pct = origin.get_points()[0][0]
originy_pct = origin.get_points()[0][1]
然后在稍后编写的html页面的javascript中打印...
print('var originx_pct = {};'.format(originx_pct))
print('var originy_pct = {};'.format(originy_pct))
这两个变量没有变化,我只是不明白我需要做什么来更新它们并能够打印它们(在函数之外)。我假设函数不知道变量,所以它不能改变它们。如果我将两个变量作为参数提供给函数,我如何为脚本的打印部分取回这些值?
发布于 2018-07-27 19:52:56
您需要在函数中使用global
关键字。
originx_pct = 0.125
originy_pct = 0.11
def makeplot(temp, entropy,preq):
global originx_pct, originy_pct
originx_pct = origin.get_points()[0][0]
originy_pct = origin.get_points()[0][1]
您可以阅读有关global
here的更多信息。
发布于 2018-07-27 20:00:54
在你的函数中,你需要返回值。将您的makeplot
更改为以下内容:
def makeplot(temp, entropy, preq):
local_originx_pct = origin.get_points()[0][0]
local_originy_pct = origin.get_points()[0][1] # the local_ in the names doesn't mean anything, it is just for clarity.
return local_originx_pct, local_originy_pct
然后,在调用函数时,将变量设置为其返回值。
originx_pct, originy_pct = makeplot(args_and_stuff)
这被认为是比直接改变全局变量更好的做法,如ltd9938的答案。它有助于防止意外地将其他功能的东西搞乱。不是to use global的More原因
发布于 2018-07-27 20:04:36
您可以在函数中使用global originx_pct
和global originy_pct
行声明全局变量,也可以在运行函数时返回它们。要做到这一点,可以这样做
def makeplot(temp, entropy,preq):
return (origin.get_points()[0][0],origin.get_points()[0][1])
或
def makeplot(temp, entropy,preq):
return origin.get_points()[0][0:2]
如果origin.get_points()[0]
只有两个元素,您只需执行以下操作:
def makeplot(temp, entropy,preq):
return origin.get_points()[0]
然后,在main函数中,将
originx_pct, originy_pct = makeplot(temp, entropy,preq)
尽管我不清楚您为什么要将temp
、entropy
和preq
传递给makeplot
,因为您似乎并没有使用它们。
https://stackoverflow.com/questions/51564669
复制