怎么在python3函数内修改全局变量?
初学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))
2个变量没有改变,我只是不明白我需要做什么来更新它们并能够打印它们(在函数之外)。我假设函数不知道变量,所以它不能改变它们。如果我将2个变量作为参数提供给函数,如何为脚本的打印部分取回值?
解答思路及代码:
您可以与线函数声明全局变量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]
然后,在你的主要功能,放
originx_pct, originy_pct = makeplot(temp, entropy,preq)
相信通过一组真实的案例,大家会更容易理解哦~
来源:PY学习网:原文地址:https://www.py.cn/article.html