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

Python-在Python中使用“global”关键字

常明亮
2023-03-14
问题内容

通过阅读文档,我了解到Python具有一个单独的函数命名空间,如果我想在该函数中使用全局变量,则需要使用global。

我正在使用Python 2.7,并且尝试了这个小测试

>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
...     return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'

即使没有,看起来一切都很好global。我能够毫无问题地访问全局变量。

我有什么想念的吗?另外,以下是Python文档中的内容:

全局语句中列出的名称不得定义为形式参数,也不得在for循环控制目标,类定义,函数定义或import语句中定义。

尽管形式参数和类定义对我来说很有意义,但我无法理解对循环控制目标和函数定义的限制。


问题答案:

关键字global仅在更改或创建局部上下文中有用,尽管很少将全局变量视为一个好的解决方案。

def bob():
    me = "locally defined"    # Defined only in local context
    print(me)

bob()
print(me)     # Asking for a global variable

以上将为你提供:

locally defined
Traceback (most recent call last):
  File "file.py", line 9, in <module>
    print(me)
NameError: name 'me' is not defined

如果使用该global语句,则变量将在函数范围的“外部”可用,从而有效地成为全局变量。

def bob():
    global me
    me = "locally defined"   # Defined locally but declared as global
    print(me)

bob()
print(me)     # Asking for a global variable

因此,以上代码将为你提供:

locally defined
locally defined

此外,由于python的性质,你还可以global在局部上下文中声明函数,类或其他对象。尽管我会建议不要这样做,因为如果出现问题或需要调试,它会引起噩梦。



 类似资料:
  • 本文向大家介绍Python中关键字nonlocal和global的声明与解析,包括了Python中关键字nonlocal和global的声明与解析的使用技巧和注意事项,需要的朋友参考一下 一、Python中global与nonlocal 声明 如下代码 执行foo() 结果 a 还是10 函数中对变量的赋值,变量始终绑定到该函数的局部命名空间,使用global 语句可以改变这种行为。 解析名称时首

  • 问题内容: 我已经读过“ raise”的正式定义,但是我仍然不太明白它的作用。 简单来说,什么是“筹款”? 示例用法将有所帮助。 问题答案: 它有2个目的。 [yentup给出了第一个。 它用于引发错误。 它用于引发您自己的错误。 第二个方法是在异常处理程序中重新引发 当前 异常,以便可以在调用堆栈中进一步处理该异常。

  • 本文向大家介绍在C#中global关键字的作用及其用法,包括了在C#中global关键字的作用及其用法的使用技巧和注意事项,需要的朋友参考一下 global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它。 假设你现在写了一个类,名字叫 System。那么当你再在代码里写 System 的时候,编译器就不知道你是要指你写的 System 类还是系统的 System

  • 原文:http://stackoverflow.com/questions/231767/the-python-yield-keyword-explained 注:这是一篇 stackoverflow 上一个火爆帖子的译文 问题 Python 关键字 yield 的作用是什么?用来干什么的? 比如,我正在试图理解下面的代码: def node._get_child_candidates(self,

  • 本文向大家介绍Python中有几个关键字,包括了Python中有几个关键字的使用技巧和注意事项,需要的朋友参考一下 Python中关键词有多少个?Python中关键词目前有31个,可以利用Python的内置的keyword模块进行输出查看。 keyword模块 得到python的关键字列表: 判断字符串是否是python的关键字 关于关键字知识点扩展: TF-IDF TF-IDF(Term Fre

  • 问题内容: …可以用于字符串相等的关键字。 我都尝试过,但是他们没有用。 问题答案: 测试字符串仅在插入字符串时有效。除非你真的知道自己在做什么,并明确实习的字符串,你应该 永远不会 使用的字符串。 测试 身份 ,而非 平等 。这意味着Python会简单地比较一个对象所在的内存地址。基本上回答了以下问题:“同一对象有两个名称吗?” -超载毫无意义。 例如,为 False 。通常,Python将每个