python - 从函数中删除全局变量
问题描述
代码
role = 'admin'
def f():
del role
if role == 'admin':
f()
else:
pass
输出
Traceback (most recent call last):
File "C:\Users\Hari\PycharmProjects\Card_Prj\ch.py", line 6, in <module>
f()
File "C:\Users\Hari\PycharmProjects\Card_Prj\ch.py", line 3, in f
del role
UnboundLocalError: local variable 'role' referenced before assignment
如果存在一个名为 admin 的角色,那么它应该删除变量角色,否则它应该什么都不做,这就是代码正在做的事情。
我尝试了不同的方法来执行此代码,但没有这样做。
任何帮助都非常感谢!!!
解决方案
我建议您参考一些文档以了解全局和局部变量的工作原理,但如果您想让它工作,这里是所需的代码:
role = 'admin'
def f():
global role
del role
if role == 'admin':
f()
else:
pass
推荐阅读
- node.js - 直接图像到 S3 下载功能 - 访问 data.key
- r - 如何从对应于存储在df中的100多个值的列中提取值
- java - ava: 包 org.springframework.boot 不存在
- python - __exit__ 装饰器有效,但 mypy 在调用时抱怨“参数太少”
- python-3.x - 在 Pandas 中将一列从垂直转换为水平时引发 ValueError
- javascript - 导入 Node 标准库模块“crypto”时出错
- javascript - 无法将数据插入到 SMS 分发的模板文字中
- r - 如何找到对应于最大值的值并在R中标记它
- apache-kafka - 当我在 Kafka 主题上生成消息时,我可以期待哪些可能的异常?
- deep-learning - 如何创建集中图层?