首页 / PYTHON / 本地和全局之间的Python范围
本地和全局之间的Python范围
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了本地和全局之间的Python范围,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含842字,纯文字阅读大概需要2分钟。
内容图文
我有两个样本:
一:
import math
def my_function():
print(math.pi)
math.pi = 3
print(math.pi)
my_function()
输出:
3.141592653589793
3
二:
a = 0
def my_function():
print(a)
a = 3
print(a)
my_function()
输出:
UnboundLocalError:赋值之前引用了局部变量“ a”
那么它们之间有什么区别呢?我认为在这种情况下math.pi和a都是全局的,它应该产生UnboundLocalError.
解决方法:
如果在函数内进行变量分配,则全局变量将被忽略,并且在函数执行期间将无法访问,在带有math lib的示例中,您不会覆盖名称math本身,这就是它起作用的原因.下方摘录会给您与数学库相同的错误:
import math
def my_function():
print(math.pi)
math = 1
my_function()
您可以在访问变量之前使用语句global,但是如果以后要进行任何赋值,则会覆盖全局变量,因此最好始终避免这样做.
import math
def my_function():
global math
print(math.pi)
math = 1
print(math) # -> <module 'math' from ...
my_function() # -> 3.14159265359
print(math) # -> 1
内容总结
以上是互联网集市为您收集整理的本地和全局之间的Python范围全部内容,希望文章能够帮你解决本地和全局之间的Python范围所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。