Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在python中更改函数中的全局变量

在python中更改函数中的全局变量
EN

Stack Overflow用户
提问于 2018-07-27 19:50:49
回答 3查看 14.2K关注 0票数 13

我是python的新手。

我不太理解如何在稍后使用的函数中设置变量和更改它们。我的脚本需要从函数中获取x和y值,这些值由该函数创建的图表的大小决定。这些变量需要稍后在脚本中传递给打印命令以输出html。假设我有全局变量:

代码语言:javascript
运行
AI代码解释
复制
    originx_pct = 0.125
    originy_pct = 0.11

但当函数运行时,这些将需要更改...

代码语言:javascript
运行
AI代码解释
复制
    def makeplot(temp, entropy,preq):
        originx_pct = origin.get_points()[0][0]
        originy_pct = origin.get_points()[0][1]

然后在稍后编写的html页面的javascript中打印...

代码语言:javascript
运行
AI代码解释
复制
    print('var originx_pct = {};'.format(originx_pct))
    print('var originy_pct = {};'.format(originy_pct))

这两个变量没有变化,我只是不明白我需要做什么来更新它们并能够打印它们(在函数之外)。我假设函数不知道变量,所以它不能改变它们。如果我将两个变量作为参数提供给函数,我如何为脚本的打印部分取回这些值?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-27 19:52:56

您需要在函数中使用global关键字。

代码语言:javascript
运行
AI代码解释
复制
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的更多信息。

票数 24
EN

Stack Overflow用户

发布于 2018-07-27 20:00:54

在你的函数中,你需要返回值。将您的makeplot更改为以下内容:

代码语言:javascript
运行
AI代码解释
复制
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 

然后,在调用函数时,将变量设置为其返回值。

代码语言:javascript
运行
AI代码解释
复制
originx_pct, originy_pct = makeplot(args_and_stuff)

这被认为是比直接改变全局变量更好的做法,如ltd9938的答案。它有助于防止意外地将其他功能的东西搞乱。不是to use globalMore原因

票数 4
EN

Stack Overflow用户

发布于 2018-07-27 20:04:36

您可以在函数中使用global originx_pctglobal originy_pct行声明全局变量,也可以在运行函数时返回它们。要做到这一点,可以这样做

代码语言:javascript
运行
AI代码解释
复制
def makeplot(temp, entropy,preq):
    return (origin.get_points()[0][0],origin.get_points()[0][1])

代码语言:javascript
运行
AI代码解释
复制
def makeplot(temp, entropy,preq):
    return origin.get_points()[0][0:2]

如果origin.get_points()[0]只有两个元素,您只需执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
def makeplot(temp, entropy,preq):
    return origin.get_points()[0]

然后,在main函数中,将

代码语言:javascript
运行
AI代码解释
复制
originx_pct, originy_pct = makeplot(temp, entropy,preq)

尽管我不清楚您为什么要将tempentropypreq传递给makeplot,因为您似乎并没有使用它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51564669

复制
相关文章
常见的数据存储方案:选择合适的方式来管理您的数据
对于数据存储方案的选择,是现代企业和个人都需要面对的重要决策。本文将为您介绍几种常见的数据存储方案,包括关系型数据库、NoSQL数据库以及分布式文件系统。通过了解每种方案的特点、操作方式和适用业务类型,希望能帮助您选择合适的数据存储方案,以更好地管理和存储数据。
用户614136809
2023/10/09
8910
来学习下bat(批处理文件类型)吧
百度词条 批处理文件,在DOS和Windows(任意)系统中,.bat文件是可执行文件,由一系列命令构成,其中可以包含对其他程序的调用。这个文件的每一行都是一条DOS命令(大部分时候就好像我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。
泽泽社长
2023/04/17
7430
【webpack】webpack-dev-server生猛上手——让我们来搭一个webpack的微服务器吧!
[前言]:因为最近在搞****API的时候用到了webpack的externals,才发现我之前都只是用webpack做一些搭建完项目后的“收尾工作”——即打包,而没有把它纳入到项目开发的“主体过程”
啦啦啦321
2018/01/03
2.5K0
【webpack】webpack-dev-server生猛上手——让我们来搭一个webpack的微服务器吧!
webpack异步加载_webpack配置按需加载
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/01
1.1K0
Webpack插件按需加载组件_webpack懒加载
学习Vue的时候,各类教程都会告诉我们:Vue 的特点是SPA——Single Page Application(单页应用程序)。它有着诸如:“只有第一次会加载页面, 以后的每次页面切换,只需要进行组件替换;减少了请求体积,加快页面响应速度,降低了对服务器的压力” 等等优点。
全栈程序员站长
2022/11/08
1.5K0
Webpack插件按需加载组件_webpack懒加载
Webpack 加载模块的规则
路径以 . 或 .. 打头,加载相对路径的模块。. 表示当前目录,.. 表示上层目录。 require('./foo.js') 将加载当前文件所在目录的 foo.js 的文件。
前端GoGoGo
2018/08/24
1.4K0
今天,我们来实现一个基础版的Webpack
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
Vam的金豆之路
2021/12/01
3950
解决WordPress需要访问您网页服务器的权限
这个问题并不困难,一开始我总是在尝试各种密码,还以为是自己忘记密码之类的,而最后发觉,本质问题应该是来自于linux下的用户权限。
十四君
2019/11/28
4K0
[译]Webpack的奇妙世界
Webpack是一个JavaScript模块构造器。 这是适合它功能的名称。 但是,我想在本文中展现Webpack的真正功能。
frontoldman
2019/09/02
5670
[译]Webpack的奇妙世界
Webpack实战-加载SVG
SVG 作为矢量图的一种标准格式,已经得到了各大浏览器的支持,它也成为了 Web 中矢量图的代名词。 在网页中采用 SVG 代替位图有如下好处:
IMWeb前端团队
2019/12/03
2.3K0
webpack(6)webpack处理图片
在项目开发中,我们时长会需要使用到图片,比如在img文件夹中有图片test1.png,然后在normal.css中会引用到图片
全栈程序员站长
2022/09/19
9400
Vue 07.webpack
webpack 是前端的一个项目构建工具,它是基于 Node.js 开发出来的一个前端工具;
LittlePanger
2020/04/14
8100
文本数据预处理:可能需要关注这些点
摘要: 要进行自然语言处理相关工作,文本数据预处理是个必不可少的过程。本文将对文本数据预处理相关的内容进行归纳整理,主要包括以下4个方面内容:
风兮177
2023/01/31
1.1K0
文本数据预处理:可能需要关注这些点
大型网站建设需要什么服务器 如何选择合适的服务器
大型网站一般指的就是一些影视站或者是购物平台,那这些大型网站建设需要什么服务器?最重要的肯定就是需要服务器的配置足够的高,像影视站的话需要下载一些电视剧或者是电影,对于清晰度的要求是很高的,那下载这些东西也是需要一定的储存空间,所以对服务器配置就很看重。
用户8715145
2021/12/11
1.6K0
webpack实战——预处理器(loader)【上篇】
当使用 babel-loader 将 ES6+ 代码转化为 ES5 时,带入公式:
流眸
2020/07/28
1K0
webpack实战——预处理器(loader)【上篇】
webpack实战——预处理器(loader)【下篇】
在上一篇中根据一切皆模块的思想,学习了解了loader:概述、引入、配置及使用。本篇接着上篇的话题,讲述常用loader。
流眸
2020/08/06
1.1K0
JVM的特性,通过代码来揭秘类加载器
这是一个类加载的流程,前面所说的过程,就是编译器将Test.java文件编译为了Test.class文件。
良月柒
2019/03/20
3880
JVM的特性,通过代码来揭秘类加载器
wordpress 出现了问题,您的修改可能未被保存,请重试。您也可能需要通过FTP手工修复并上传文件
如果你有时间,可以一个个的去关闭和开启每一个参数检查,确认是哪个配置引起的问题。我还没去测试。
拖拉机先生
2023/01/04
1.2K0
wordpress 出现了问题,您的修改可能未被保存,请重试。您也可能需要通过FTP手工修复并上传文件
警惕!这种新型挖矿可能盯上你主机
在2021年上半年,虚拟加密货币(Cryptocurrency,下文简称虚拟货币)价格屡创新高的新闻一次又一次的吸引着人们的目光,其中比特币是大众最为熟知的虚拟货币。特斯拉公司也在2月份高调宣布购入价值15亿美元的比特币并计划开始接受比特币作为其公司电动车产品的付款方式1。而特斯拉公司的CEO埃隆·马斯克也在国外社交平台公开表示大力支持狗狗币2,使其价格最高冲到0.73美元/枚,较年初暴涨近百倍(截止2021年6月29日,狗狗币已回落至0.26美元/枚)。
腾讯安全应急响应中心
2021/07/02
7540
警惕!这种新型挖矿可能盯上你主机
您的组织真的需要 Kubernetes 吗?
petecheslock在 Twitter 上表达了对无处不在的 Kubernetes 的批评观点:
用户5166556
2023/09/07
2430
您的组织真的需要 Kubernetes 吗?

相似问题

webpack :您可能需要一个合适的加载器来处理这种文件类型

21

“你可能需要一个合适的加载器来处理这种文件类型”,使用Webpack和CSS

33

Webpack:‘你可能需要一个合适的加载器来处理这种文件类型。’-如何解决异步错误?

20

Webpack错误:“您可能需要一个合适的加载器来处理此文件类型”

34

如何解决webpack2错误:你可能需要一个合适的加载器来处理这种文件类型?

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档