背景:我正在制作一个 Ren'py 游戏。值为 Character()。是的,我知道在这种情况下这是一个愚蠢的想法。
我需要从存在于类范围之外的类中的输入字符串创建一个变量:
class Test:
def __init__(self):
self.dict = {} # used elsewhere to give the inputs for the function below.
def create_global_var(self, variable, value):
# the equivalent of exec("global {0}; {0} = {1}".format(str(variable), str(value)))
# other functions in the class that require this.
Test().create_global_var("abc", "123") # hence abc = 123
我试过vars()[]
,globals()[variable] = value
等,但它们根本不起作用(它们甚至没有定义任何东西)编辑:这是我的问题。
我知道以下内容也同样有效,但我希望变量在正确的范围内:
setattr(self.__class__, variable, value) # d.abc = 123, now. but incorrect scope.
如何在类中创建全局范围内的变量,使用字符串作为变量名,而不在 python 中使用属性或 exec?
是的,我会进行健全性检查。