当前位置: 首页 > 面试题库 >

Python-为什么全局变量是不好的?[closed]

司徒河
2023-03-14
问题内容

为什么全局变量是不好的?[closed]


问题答案:

这与Python无关。全局变量在任何编程语言中都是不好的。

但是,全局常量在概念上与全局变量并不相同。全局常数完全无害。只是在Python中没有强制性差异,只有约定是CONSTANTS_CAPITALIZEDand globals_are_not

它们不好的原因是它们使函数具有隐藏的(非显而易见的,令人惊讶的,难以检测的)副作用,从而导致复杂性的增加,并有可能导致产生Spaghetti代码

但是,即使在函数式编程中,也可以合理使用全局状态(局部状态和可变性也是如此),无论是算法优化,降低复杂性,缓存和记忆化,还是移植以命令式代码库为基础的结构的实用性。



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

  • 问题内容: 我了解Python中局部变量和全局变量的概念,但是我只是有一个问题,为什么下面的代码中会出现错误?Python逐行执行代码,因此在读取第5行之前,它不知道a是局部变量。Python尝试执行第5行后,会回退一行并将其标记为错误吗? 问题答案: 设置和测试 为了分析您的问题,让我们创建两个独立的测试函数来复制您的问题: 版画。因此,调用此函数不是问题,而是在下一个函数上: 我们收到一个错误

  • 问题内容: 此代码为何起作用: 但这给出了“分配前引用的局部变量’var’”错误: 问题答案: 因为在第一个代码中,您已经创建了一个局部变量并使用了它的值,而在第二个代码中,您正在使用局部变量,而没有对其进行定义。 因此,如果要使第二个功能正常工作,则需要声明:- 在使用该功能之前。 而在此代码中: 更新 :- 但是,按照@Tim的注释,您不应在函数内部使用变量。最好在使用变量之前先定义变量,然后

  • 本文向大家介绍static全局变量与普通的全局变量有什么区别?相关面试题,主要包含被问及static全局变量与普通的全局变量有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 static全局变量只初使化一次,防止在其他文件单元中被引用; 全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。 这两者在存储方式

  • 问题内容: 我一直看到警告,不要在JavaScript中使用全局变量,但是似乎人们说这的唯一原因是因为阻塞了全局名称空间。我可以想象通过将所有变量放入一个大对象中来轻松解决此问题。现在的问题是:除了方便起见,还有其他原因不使用全局变量吗?它们是否涉及任何性能或兼容性问题? 问题答案: 它们使全局名称空间混乱,并且查找速度比局部变量慢。 首先,拥有许多全局变量始终是一件坏事,因为很容易忘记您在某个地

  • 问题内容: 我目前遇到一个问题,我有两个我需要调用的模块,它们需要能够修改相同的变量。 我决定创建一个名为的全局变量,并在其中存储所需的变量。 但是我一直在阅读,使用全局变量是一种不好的做法。为什么? 我仅创建一个变量,该变量不应与其他任何冲突,因为它是我的应用程序的名称。 问题答案: 几乎在所有编程语言中,全局变量都被视为反模式,因为它们使遵循和调试代码变得非常困难。 浏览代码时,您永远不知道哪