0

由于我的最后一个问题措辞相当糟糕,所以这是一个不同的问题,它将为我提供相同的好处!

首先,我想完成一件事:创建一个新名称Set并将该Set's名称设置为变量的值(我将其设置为等于的字符串,例如new_set_name = 'buffalo'

我希望它是这样的,new_set_name = Set([])除了我不希望最终结果是 aSet的名称new_set_name,我希望 the 的名称Set改为:buffalo

我非常努力地使它尽可能不令人困惑,但如果是的话,请告诉我!我会努力解决的!

4

2 回答 2

0

我不太清楚你的意思,但如果你想使用变量值作为变量名,你需要在这样的类中使用 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
于 2015-11-23T14:47:43.000 回答
0

您可以像这样在模块命名空间中创建一个变量

new_set_name = 'buffalo'
globals()[new_set_name] = set()

命名空间由dicts 实现,但是当您使用变量时,python 会计算上下文,因此您不必直接引用它们。您可以使用它们的变量在其他模块命名空间中查看或更新,__dict__但使用起来更习惯setattr

import os
print(os.__dict__)
os.__dict__[new_set_name] = set()
setattr(os, new_set_name, set())
于 2015-11-23T15:05:22.193 回答