Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在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

复制
相关文章
ScintillaNET 需要帮助
Scintilla是一个免费的源代码编辑控件,它完全开放源代码,并且提供一个license允许用户自由地将它用在开源软件或是商业软件中。作为源代码编辑控件,我们能在普通的的文本编辑控件中能看到的功能,Scintilla都完全能够实现,而且,它还能够提供很多编辑和调试源代码时有用的特殊功能。包括语法高亮显示,错误指示,代码自动完成以及代码提示等。而且在左边的空白处(margin),可以显示调试代码中非常有用的显示断点以及显示当前运行行等功能。而且,自定义风格的功能比其他大部分编辑器控件都开放,它允许用户自定
张善友
2018/01/22
1.5K0
有关JIT你需要知道的
JVM对代码执行的优化可分为运行时(runtime)优化和即时编译器(JIT)优化。 运行时优化主要是解释执行和动态编译通用的一些机制。比如说锁机制(如偏斜锁)、内存分配机制(如TLAB)等。除此之外,还有一些专门用于优化解释执行效率的,比如说模版解释器、内联缓存(inline cache,用于优化虚方法调用的动态绑定)
全菜工程师小辉
2019/08/16
1K0
有关java中的参数调用的问题
专业术语——     按值调用(call by value) 表示方法接受的是调用者提供的值。     按引用调用(call by reference) 表示方法接受的是调用者提供的变量地址。     一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值。   java中只有值传递!     java中只有值传递!     java中只有值传递!     重要的事情要说三遍!!!   也就是说,方法得到的是所有参数值的一个拷贝,特别是,方法不能修改传递给它的任何参数变量的内容。
小小明童鞋
2018/06/13
1.2K0
与文件上传有关的php配置参数
搞个了图片上传,死活不好使,后来发现是php参数配置的问题。 下面总结下与文件上传有关的php参数,备忘之~ 所有这些参数都在php.ini中设置。 1.file_uploads 设为On,允许通过HTTP上传文件
跑马溜溜的球
2020/12/07
7250
Jmeter中有关随机参数的那些事
相信大家已经看过前面一些介绍jmeter的文章,对这个测试工具已经有了“深入”的了解。在接口测试中,通常我们发送的请求不是一成不变的,使用参数化功能可以解决对不同数据的需求,但对于需要随机参数的地方,我们需要另外的一些方法。今天我就来介绍一下jmeter中很重要的一类功能——随机参数。
用户5521279
2019/09/16
4.7K0
Jmeter中有关随机参数的那些事
您需要了解的有关Selenium等待方法
等待可以帮助用户在重定向到其他网页时解决问题。这可以通过刷新整个网页并重新加载新的Web元素来实现。有时,也可能会有Ajax调用。因此,在重新加载网页并反映Web元素时可以看到时间滞后。
用户7466307
2020/06/24
1.8K0
与数据挖掘有关或有帮助的R包和函数的集合
rpart,party,randomForest,rpartOrdinal,tree,marginTree,
IT阅读排行榜
2018/08/13
8690
搭建直播教育平台,需要它的“帮助”才行
在搭建直播教育平台这方面,可能绝大多数人都会存在疑惑:是不是找一开发公司购买一套优质的教育直播平台源码就可以了?其实源码对于开发来说,确确实实是非常重要的,而且也是最基础的一部分。但是在此基础之上,还需要更多技术方面的知识和能力,比如我们经常见到的DNS负载均衡。今天就主要分享一下DNS负载均衡方面的知识内容。
万岳教育源码
2020/05/16
1.2K0
搭建直播教育平台,需要它的“帮助”才行
【100个 Unity实用技能】| Unity中 检查当前设备网络状态 的几种方法整理
在做项目时有时候可能需要拿到当前设备的网络状态,所以本文整理了在Unity中可以用到的一些拿到网络状态的方法,下面一起来看看吧。
呆呆敲代码的小Y
2022/10/31
2.6K0
【100个 Unity实用技能】| Unity中 检查当前设备网络状态 的几种方法整理
有关RAID我们需要了解的一些知识
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。 一、RAID概述 1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 [1] ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。但这仅仅是名称的变化,实质内容没有改变。   RAID 这种设计思想很快被业界接纳, RAID 技术作为高性能、高可靠的存储技术,已经得到了非常广泛的应用。 RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。 D. A. Patterson 等的论文中定义了 RAID1 ~ RAID5 原始 RAID 等级, 1988 年以来又扩展了 RAID0 和 RAID6 。近年来,存储厂商不断推出诸如 RAID7 、 RAID10/01 、 RAID50 、 RAID53 、 RAID100 等 RAID 等级,但这些并无统一的标准。目前业界公认的标准是 RAID0 ~ RAID5 ,除 RAID2 外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、 RAID3 、 RAID5 、 RAID6 和 RAID10。   从实现角度看, RAID 主要分为软 RAID、硬 RAID 以及软硬混合 RAID 三种。软 RAID 所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率自然最低。硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本 在软 RAID 和硬 RAID 之间。   RAID 每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID 等级,以及具体的实现方式。 二、基本原理 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。 SNIA 对 RAID 的定义是 [2] :一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。   RAID 的初衷是为大型服务器提供高端的存储功能和冗余的数据安全。在整个系统中, RAID 被看作是由两个或更多磁盘组成的存储空间,通过并发地在多个磁盘上读写数据来提高存储系统的 I/O 性能。大多数 RAID 等级具有完备的数据校验、纠正措施,从而提高系统的容错性,甚至镜像方式,大大增强系统的可靠性, Redundant 也由此而来。   这里要提一下 JBOD ( Just a Bunch of Disks )。最初 JBOD 用来表示一个没有控制软件提供协调控制的磁盘集合,这是 RAID 区别与 JBOD 的主要因素。目前 JBOD 常指磁盘柜,而不论其是否提供 RAID 功能。   RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统
全栈程序员站长
2022/06/29
1.7K0
有关RAID我们需要了解的一些知识
为什么你需要编程assignment指导帮助?
计算机编程一直都不是一个简单的领域,即使是对于那些痴迷于计算机编程的同学,乃至大神们,也很难掌握所有的理论和概念。但是,教授、讲师们不可能延长课时,让同学们有充分时间去领悟其中的精髓,甚至是精通计算机编程。 那有什么办法可以让同学们熟练掌握计算机编程呢?7*24的图书馆学习吗?当然不是!俗话说的好,“火车跑得快,全靠车头带”,同学们需要的是一名专业的工程师,在前方带领大家。
拓端
2022/10/24
4020
你需要了解的有关 Node.js 的所有信息
Node.js 是当前用来构建可扩展的、高效的 REST API's 的最流行的技术之一。它还可以用来构建混合移动应用、桌面应用甚至用于物联网领域。
五月君
2020/02/19
9830
Js获取当前页面url参数
<script type="text/javascript"> function getUrlParams(url) { const _url = url ||
lyudev
2022/08/04
22.3K0
Ask Apple 2022 与 SwiftUI 有关的问答(下)
Ask Apple 为开发者与苹果工程师创造了在 WWDC 之外进行直接交流的机会。本文对本次活动中与 SwiftUI 有关的一些问答进行了整理,并添加了一点个人见解。本文为下篇。
东坡肘子
2022/12/16
15.2K0
Ask Apple 2022 与 SwiftUI 有关的问答(下)
有关RAID我们需要了解的一些知识
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆。这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征、基本原理、关键技术、各种等级和发展现状进行了全面的阐述,并为用户如何进行应用选择提供了基本原则,对于初学者应该有很大的帮助。 一、RAID概述 1988 年美国加州大学伯克利分校的 D. A. Patterson 教授等首次在论文 “A Case of Redundant Array of Inexpensive Disks” 中提出了 RAID 概念 [1] ,即廉价冗余磁盘阵列( Redundant Array of Inexpensive Disks )。由于当时大容量磁盘比较昂贵, RAID 的基本思想是将多个容量较小、相对廉价的磁盘进行有机组合,从而以较低的成本获得与昂贵大容量磁盘相当的容量、性能、可靠性。随着磁盘成本和价格的不断降低, RAID 可以使用大部分的磁盘, “廉价” 已经毫无意义。因此, RAID 咨询委员会( RAID Advisory Board, RAB )决定用 “ 独立 ” 替代 “ 廉价 ” ,于时 RAID 变成了独立磁盘冗余阵列( Redundant Array of Independent Disks )。但这仅仅是名称的变化,实质内容没有改变。   RAID 这种设计思想很快被业界接纳, RAID 技术作为高性能、高可靠的存储技术,已经得到了非常广泛的应用。 RAID 主要利用数据条带、镜像和数据校验技术来获取高性能、可靠性、容错能力和扩展性,根据运用或组合运用这三种技术的策略和架构,可以把 RAID 分为不同的等级,以满足不同数据应用的需求。 D. A. Patterson 等的论文中定义了 RAID1 ~ RAID5 原始 RAID 等级, 1988 年以来又扩展了 RAID0 和 RAID6 。近年来,存储厂商不断推出诸如 RAID7 、 RAID10/01 、 RAID50 、 RAID53 、 RAID100 等 RAID 等级,但这些并无统一的标准。目前业界公认的标准是 RAID0 ~ RAID5 ,除 RAID2 外的四个等级被定为工业标准,而在实际应用领域中使用最多的 RAID 等级是 RAID0 、 RAID1 、 RAID3 、 RAID5 、 RAID6 和 RAID10。   从实现角度看, RAID 主要分为软 RAID、硬 RAID 以及软硬混合 RAID 三种。软 RAID 所有功能均有操作系统和 CPU 来完成,没有独立的 RAID 控制 / 处理芯片和 I/O 处理芯片,效率自然最低。硬 RAID 配备了专门的 RAID 控制 / 处理芯片和 I/O 处理芯片以及阵列缓冲,不占用 CPU 资源,但成本很高。软硬混合 RAID 具备 RAID 控制 / 处理芯片,但缺乏 I/O 处理芯片,需要 CPU 和驱动程序来完成,性能和成本 在软 RAID 和硬 RAID 之间。   RAID 每一个等级代表一种实现方法和技术,等级之间并无高低之分。在实际应用中,应当根据用户的数据应用特点,综合考虑可用性、性能和成本来选择合适的 RAID 等级,以及具体的实现方式。 二、基本原理 RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说, RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术。 RAID 是一类多磁盘管理技术,其向主机环境提供了成本适中、数据可靠性高的高性能存储。 SNIA 对 RAID 的定义是 [2] :一种磁盘阵列,部分物理存储空间用来记录保存在剩余空间上的用户数据的冗余信息。当其中某一个磁盘或访问路径发生故障时,冗余信息可用来重建用户数据。磁盘条带化虽然与 RAID 定义不符,通常还是称为 RAID (即 RAID0 )。   RAID 的初衷是为大型服务器提供高端的存储功能和冗余的数据安全。在整个系统中, RAID 被看作是由两个或更多磁盘组成的存储空间,通过并发地在多个磁盘上读写数据来提高存储系统的 I/O 性能。大多数 RAID 等级具有完备的数据校验、纠正措施,从而提高系统的容错性,甚至镜像方式,大大增强系统的可靠性, Redundant 也由此而来。   这里要提一下 JBOD ( Just a Bunch of Disks )。最初 JBOD 用来表示一个没有控制软件提供协调控制的磁盘集合,这是 RAID 区别与 JBOD 的主要因素。目前 JBOD 常指磁盘柜,而不论其是否提供 RAID 功能。   RAID 的两个关键目标是提高数据可靠性和 I/O 性能。磁盘阵列中,数据分散在多个磁盘中,然而对于计算机系统
互联网-小阿宇
2022/11/21
1.9K0
有关RAID我们需要了解的一些知识
【学习】干货:与数据挖掘有关或有帮助的R包和函数的集合
与数据挖掘有关或者有帮助的R包和函数的集合。 1、聚类 常用的包: fpc,cluster,pvclust,mclust 基于划分的方法: kmeans, pam, pamk, clara 基于层次的方法: hclust, pvclust, agnes, diana 基于模型的方法: mclust 基于密度的方法: dbscan 基于画图的方法: plotcluster, plot.hclust 基于验证的方法: cluster.stats 2、分类 常用的包: rpart,party,randomFo
小莹莹
2018/04/23
1.1K0
【学习】干货:与数据挖掘有关或有帮助的R包和函数的集合
在ChatGPT帮助下创造简单的shinyAPP
ChatGPT是一种基于深度学习的自然语言处理模型,能够对人类语言进行自动理解和生成。而shinyAPP则是一种构建交互式Web应用程序的快速、简单、灵活的方式。
叶子Tenney
2023/03/16
1.8K0
在ChatGPT帮助下创造简单的shinyAPP
为什么你需要编程assignment指导帮助?
计算机编程一直都不是一个简单的领域,即使是对于那些痴迷于计算机编程的同学,乃至大神们,也很难掌握所有的理论和概念。但是,教授、讲师们不可能延长课时,让同学们有充分时间去领悟其中的精髓,甚至是精通计算机编程。 那有什么办法可以让同学们熟练掌握计算机编程呢?7*24的图书馆学习吗?当然不是!俗话说的好,“火车跑得快,全靠车头带”,同学们需要的是一名专业的工程师,在前方带领大家。
拓端
2022/10/25
3970
Unity入门教程(下)
一、概要 在 Unity入门教程(上) 中我们创建了一个游戏项目,并且创建了玩家角色和小球这些游戏对象,还通过添加游戏脚本实现了小方块的弹跳。虽然功能比较简单,但是完整地表现了使用Unity开发游戏的大体流程。 为了让这个游戏变得更加有趣,下面我们要进一步完善玩家角色和小球的动作。 二、让小球飞起来(物理运动和速度) 目前小球是静止在空中的,下面我们来尝试让它朝玩家角色飞去。 为了令小球能够模拟物理运动,需要添加Rigidbody组件。同时还需要创建一个Ball的脚本。此操作在Unity入门教程(上)中的步
Zoctopus
2018/06/04
3.4K3
点击加载更多

相似问题

如何在Fabric.js中删除对象周围的蓝色边框

18

删除图像周围的空白

10

删除视频周围的空白?

10

删除div周围的空白

49

删除Microsoft上图像周围的边缘

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

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