when someone abandons you,it is him that gets loss because he lost someone who truly loves him but you just lost one who doesn’t love you.
最近写一个 pcap 分析工具,需要用到全局变量,然后就想到 global,但是定义在 py 所有函数之外的变量,不就是全局作用域吗,那这个 global 的作用是什么?
1 | a = 1 |
运行以后不难看到如下的错误提示:
1 | Traceback (most recent call last): |
这是为什么?a 明明就是一个全局范围内的变量,为什么还会出错?
那是因为在 Python 中,虽然定义了全局变量 a,作用域也确实是从定义处到代码结束,但如果出现修改函数中与全局变量同名变量的情形,函数中的同名变量就会变成一个局部变量,此时这个局部变量被修改的语句出现这个错误也就不难理解了
如果确定要使用且修改全局变量,则需要在函数使用前加上 global 关键字,下面的代码就不会报错了
1 | a = 1 |
写到这里,好像今日份的笔记已经结束了,但是这份量着实是有点 “笔记” 了
下面的代码可以正常执行吗?
1 | def test(): |
如果粘贴上述代码到 vscode 中,不难发现,vscode 直接指着 global a = 1 的等号就提示 SyntaxError: invalid syntax 错误了
be yourself, everyone else is already taken.