如何访问存储在变量中的字符串? (Python)
How to access the string stored in the variable? (Python)
由于我的上一个问题措辞不佳,这里有一个不同的问题可以为我提供同样的好处!
首先,我想完成一件事:创建一个新的 Set
并将该 Set's
名称设置为变量的值(我将其设置为等于的字符串,例如new_set_name = 'buffalo'
)
我希望它是这样的 new_set_name = Set([])
除了我不希望最终结果是名称为 new_set_name
的 Set
我想要 Set
改为:buffalo
。
我努力使它尽可能不混淆,但如果是,请告诉我!我会尽力解决的!
我不太清楚你的意思,但是如果你想使用变量值作为变量名,你需要在 class 中使用 setattr,就像这样
class Test:
def testmethod(self,name):
setattr(self,name,Set())
那你可以说
tmp = Test()
varname= 'buffalo'
tmp.testmethod(varname)
你将拥有
In [29]: type(t.buffalo)
Out[29]: sets.Set
您可以像这样在模块命名空间中创建一个变量
new_set_name = 'buffalo'
globals()[new_set_name] = set()
命名空间由 dict
s 实现,但 python 会在您使用变量时找出上下文,因此您不必直接引用它们。您可以使用 __dict__
变量查看或更新其他模块命名空间,但更习惯使用 setattr
import os
print(os.__dict__)
os.__dict__[new_set_name] = set()
setattr(os, new_set_name, set())
由于我的上一个问题措辞不佳,这里有一个不同的问题可以为我提供同样的好处!
首先,我想完成一件事:创建一个新的 Set
并将该 Set's
名称设置为变量的值(我将其设置为等于的字符串,例如new_set_name = 'buffalo'
)
我希望它是这样的 new_set_name = Set([])
除了我不希望最终结果是名称为 new_set_name
的 Set
我想要 Set
改为:buffalo
。
我努力使它尽可能不混淆,但如果是,请告诉我!我会尽力解决的!
我不太清楚你的意思,但是如果你想使用变量值作为变量名,你需要在 class 中使用 setattr,就像这样
class Test:
def testmethod(self,name):
setattr(self,name,Set())
那你可以说
tmp = Test()
varname= 'buffalo'
tmp.testmethod(varname)
你将拥有
In [29]: type(t.buffalo)
Out[29]: sets.Set
您可以像这样在模块命名空间中创建一个变量
new_set_name = 'buffalo'
globals()[new_set_name] = set()
命名空间由 dict
s 实现,但 python 会在您使用变量时找出上下文,因此您不必直接引用它们。您可以使用 __dict__
变量查看或更新其他模块命名空间,但更习惯使用 setattr
import os
print(os.__dict__)
os.__dict__[new_set_name] = set()
setattr(os, new_set_name, set())