Python 中的变量作用域
2024-08-10
45
通常,在块中定义的变量仅在该块中可用。在街区外无法到达。这样的变量称为局部变量。形式参数标识符也表现为局部变量。
下面的例子将强调这一点。试图打印其作用域之外的局部变量将引发NameError
异常。
Example: Local Variable
def greet(): name = 'Steve' print('Hello ', name)
这里,name
是greet()
函数的局部变量,不能在函数外部访问。
Example: Local Variable
>>> greet() Hello Steve>>> name Traceback (most recent call last):File "<pyshell#4>", line 1, in <module> name NameError: name 'name' is not defined
任何存在于任何函数块之外的变量称为全局变量。它的值可以从任何函数内部访问。在下面的例子中,name
变量在函数定义之前被初始化。 因此,它是一个全局变量。
Example: Global Variable
name='John'def greet(): print ("Hello ", name)
现在,您可以访问全局变量name
,因为它是由函数定义的。
>>> greet() Hello Steve>>> name'Steve'
但是,如果我们在函数内部为全局声明的变量赋值,则会在函数的命名空间中创建一个新的局部变量。此赋值不会改变全局变量的值。例如:
Example: Local and Global Variables
name = 'Steve'def greet(): name = 'Bill' print('Hello ', name)
现在,改变函数内部全局变量name
的值不会影响其全局值。
>>> greet()Hello Bill>>> name'Steve'
如果您需要从函数内部访问和更改全局变量的值,该权限由global
关键字授予。
Example: Access Global Variables
name = 'Steve'def greet(): global name name = 'Bill' print('Hello ', name)
上面将在 Python Shell中显示以下输出。
>>> name 'Steve'>>> greet() Hello Bill>>> name 'Bill'
也可以同时使用同名的全局变量和局部变量。内置函数globals()
返回所有全局变量及其各自值的字典对象。 使用变量的名称作为关键字,可以访问和修改其值。
Example: Global Variables
name = 'Steve'def greet(): globals()['name'] = 'James' name='Steve' print ('Hello ', name)
上述代码的结果显示了具有相同名称的全局变量和局部变量之间的冲突以及如何解决该冲突。
>>> name'Steve'>>> greet() Hello Steve >>> name'James'
更多信息,请访问 Python 中的全局和局部。
更新于:1个月前赞一波!2
相关文章
- Python环境安装,解释器配置
- PHP中的 unset 和 引用变量
- 使用 Python 开发桌面应用程序的最佳方法是什么?
- Scala和Python有什么区别?
- 在Windows 10计算机上安装Python的最佳方法是什么?
- 使用 Python 拆分文本文件的最快方法是什么?
- Python定时任务调度框架APScheduler详解
- 我应该使用 PyCharm 在 Python 中编程吗?
- json python中的转储函数
- 你如何在 Python 中循环字典?
- 有哪些好的机器学习 Python 包?
- 对于初学者来说,有哪些好的 Python 示例?
- 地图函数在 Python 中有什么用?
- 如何在 Anaconda 中安装 Python 包?
- “//”在python中是什么意思?
- 对未来的技能,Go和Python哪个更好?
- 使用Python时绝对不应该做什么?
- 真正优秀的Python开发人员拥有哪些技能?
- 为什么C代码比Python代码运行得更快?
- 你希望早点知道哪些 Python 功能?
文章评论
全部评论