2015-11-23 2 views
0

Поскольку мой последний вопрос был довольно слабо сформулирован, вот другой вопрос, который предоставит мне те же преимущества!Как получить доступ к строке, хранящейся в переменной? (Python)

Прежде всего, я хочу сделать одну вещь: создать новый Set и установить, что Set's имя к значению переменной (строка, я бы установить его равным, например, new_set_name = 'buffalo')

Хочу чтобы быть чем-то вроде этого new_set_name = Set([]) За исключением я не хочу, чтобы конечный результат был Set с именем new_set_name Я хочу, чтобы вместо Set вместо: buffalo.

Я очень старался сделать это как не путать, насколько это возможно, но если да, дайте мне знать! Я постараюсь это исправить!

+0

ли вы имеете в виду вы хотите использовать vaue переменной в качестве имени переменной? в этом случае я проверил бы это http://stackoverflow.com/questions/11553721/using-a-string-variable-as-a-variable-name – scrineym

+0

Прикомандировано: [используйте словарь] (http: // stackoverflow .com/вопросы/1373164/как-делать-я-до-значения_переменный переменные-в-питон). – kwinkunks

ответ

0

вы можете создать переменную в пространстве имен модуля, как так

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

Namespaces реализуются dict с, но цифры питона, выполненной контексте, когда вы будете использовать переменные, так что вы не должны обращаться к ним напрямую. Вы можете просмотреть или обновить в других пространствах имен модуля, используя их __dict__ переменную, но его привычнее использовать setattr

import os 
print(os.__dict__) 
os.__dict__[new_set_name] = set() 
setattr(os, new_set_name, set()) 
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 
Смежные вопросы