当前位置: 首页 > 知识库问答 >
问题:

为什么我不应该在python中使用全局变量?[副本]

司寇高洁
2023-03-14

今天在课堂上,我的老师告诉我,我不应该在python中使用全局变量,因为函数应该能够独立存在。我想我可以通过参数和返回值来实现这一点?任何帮助都会很好,谢谢。

共有1个答案

殷耀
2023-03-14

不仅在Python中,我们还应该避免在任何语言中使用全局变量。这就是为什么全局变量被认为是不好的一些原因−

(1) 全局变量可以通过代码的任何部分进行更改,从而难以记住或解释每种可能的用法。

(2)全局变量可以没有权限改造。它不能局限于程序的某些部分。

(3)使用全局变量会导致代码的紧密耦合。

(4)使用全局变量会造成命名空间污染。这可能导致不必要地重新分配全局值。

(5)在使用全局变量的程序中进行测试可能是一个巨大的痛苦,因为在测试期间很难将它们解耦

 类似资料:
  • 问题内容: 全局变量在Python中如何工作?我知道全局变量是有害的,我只是在做实验。 这在python中不起作用: 我收到一个错误: 我究竟做错了什么? 问题答案: 您需要声明: 在Python中, 您分配的 变量默认情况下成为局部变量。您需要使用将它们声明为全局变量。另一方面,您 引用但未分配的 变量不会自动成为局部变量。这些变量指的是封闭范围内最接近的变量。 Python 3.x引入了类似于

  • 问题内容: 为什么全局变量是不好的?[closed] 问题答案: 这与Python无关。全局变量在任何编程语言中都是不好的。 但是,全局常量在概念上与全局变量并不相同。全局常数完全无害。只是在Python中没有强制性差异,只有约定是。 它们不好的原因是它们使函数具有隐藏的(非显而易见的,令人惊讶的,难以检测的)副作用,从而导致复杂性的增加,并有可能导致产生Spaghetti代码。 但是,即使在函数

  • 我试图理解将jwt存储在本地存储(倾向于xss)与cookie(倾向于csrf)的安全含义。我想了解如果我将jwt令牌存储在前端的应用状态中的安全性影响,就像在redux商店中一样。 编辑: 我试图了解有关存储代币的更多信息。似乎所有的文章和答案实际上都是在确定有两种方法可以做到这一点后开始讨论的,即cookie或浏览器存储。像这样一个相关的问题:在浏览器中的何处存储JWT?如何防范CSRF?像这

  • 问题内容: 考虑一下: 一方面,它更干净,更pythonic。另一方面,你将用作第一个参数,但我觉得这很多余和令人困惑。所以我开始怀疑更大的差异… 根据文档: 因此,区别仅在于使用。那么,的重要之处是什么?让我们再次看一下文档: 好。根本没关系 因此,这是重要的部分-确保所有上下文处理器都能正常工作,并重点放在csrf上。所以真的,回到我的第一个示例,这些实际上是相同的: 现在,第二个例子显然更糟

  • 我已经检查了我的windows10机器上是否安装了python 3.8。我正在尝试安装带有pip的软件包,但终端告诉我,“[pip”不被识别为内部或外部命令、可操作程序或批处理文件。] 我知道3.4以上的Python版本已经预装了pip,那么为什么我会收到这个错误消息呢?

  • 问题内容: 如何在函数中创建或使用全局变量? 如果在一个函数中创建全局变量,如何在另一个函数中使用该全局变量?我是否需要将全局变量存储在需要对其进行访问的函数的局部变量中? 问题答案: 你可以在其他函数中使用全局变量,方法是像在分配给它的每个函数中一样声明它: 我想这是因为全局变量是如此危险,因此Python希望通过显式要求使用关键字来确保您真正知道这就是要使用的内容。