Python3: SyntaxError: cannot delete literal
Python3: SyntaxError: cannot delete literal
我有一个功能:
def globalrn(name, newname):
exec("""global {}""".format(name))
exec("""globals()[newname] = name""")
exec("""del {}""".format(globals()[name])) # using string as a variable name based from answers from
和其余代码(不是函数的一部分)...
x = 3
globalrn('x', 'y')
print(x)
print(y)
我得到一个错误:
Traceback (most recent call last):
File "rn", line 8, in <module>
globalrn('x', 'y')
File "rn", line 4, in globalrn
exec("""del {}""".format(globals()[name]))
File "<string>", line 1
SyntaxError: cannot delete literal
我不知道为什么会这样。
(debian/ubuntu, python-3.8)
如果我对你的理解是正确的,你想重命名一个全局变量:
您可以更轻松地做到这一点:
globals()
使您可以访问字典中的所有全局变量,因此您可以从字典中删除一个值并使用不同的键插入它。
def globalrn(name, newname):
globals()[newname] = globals().pop(name)
(.pop(key)
删除字典中具有给定 key
和 returns 值的条目)
我有一个功能:
def globalrn(name, newname):
exec("""global {}""".format(name))
exec("""globals()[newname] = name""")
exec("""del {}""".format(globals()[name])) # using string as a variable name based from answers from
和其余代码(不是函数的一部分)...
x = 3
globalrn('x', 'y')
print(x)
print(y)
我得到一个错误:
Traceback (most recent call last):
File "rn", line 8, in <module>
globalrn('x', 'y')
File "rn", line 4, in globalrn
exec("""del {}""".format(globals()[name]))
File "<string>", line 1
SyntaxError: cannot delete literal
我不知道为什么会这样。
(debian/ubuntu, python-3.8)
如果我对你的理解是正确的,你想重命名一个全局变量:
您可以更轻松地做到这一点:
globals()
使您可以访问字典中的所有全局变量,因此您可以从字典中删除一个值并使用不同的键插入它。
def globalrn(name, newname):
globals()[newname] = globals().pop(name)
(.pop(key)
删除字典中具有给定 key
和 returns 值的条目)