首页 > 解决方案 > 从函数中删除全局变量

问题描述

代码

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 的角色,那么它应该删除变量角色,否则它应该什么都不做,这就是代码正在做的事情。

我尝试了不同的方法来执行此代码,但没有这样做。

任何帮助都非常感谢!!!

标签: pythonpython-3.xfunctionif-statementconditional-statements

解决方案


我建议您参考一些文档以了解全局和局部变量的工作原理,但如果您想让它工作,这里是所需的代码:

role = 'admin'

def f():
    global role
    del role

if role == 'admin':
    f()
else:
    pass

推荐阅读