如何访问存储在变量中的字符串?(Python)

2024-04-25 14:51:57 发布

您现在位置:Python中文网/ 问答频道 /正文

因为我的最后一个问题是相当糟糕的措辞,这里是一个不同的问题,将提供我同样的好处!你知道吗

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

我希望它是这样的new_set_name = Set([])除了我不希望最终结果是一个Set的名字new_set_name我希望Set的名字改为:buffalo。你知道吗

我尽了最大努力使它尽可能不令人困惑,但如果是,让我知道!我会尽力解决的!你知道吗


Tags: 字符串name名称new名字set我会buffalo
2条回答

您可以在模块名称空间中创建一个变量,如下所示

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

名称空间是由dict实现的,但是python在使用变量时会找出上下文,所以不必直接引用它们。您可以使用其他模块的__dict__变量查看或更新它们的名称空间,但通常使用setattr

import os
print(os.__dict__)
os.__dict__[new_set_name] = set()
setattr(os, new_set_name, set())

我不太清楚你的意思,但是如果你想用一个变量值作为变量名,你需要在这样的类中使用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

相关问题 更多 >