Найти - Пользователи
Полная версия: Динамические переменные
Начало » Python для новичков » Динамические переменные
1 2
mihalich
Здравствуйте!
Недавно изучаю Python (наверно тут часто звучит такая фраза).

необходимо в зависимости от значения переменной формировать название другой переменной, допустим в какой то момент начальная переменная имеет значение 1, то конечная переменная должна иметь имя <переменная>1, если начальная переменная, допустим 2, то конечная имеет вид <переменная>2.

Как такое реализовать?
goblin_maks
не проще смотреть обьявленна <переменная>1 или <переменная>2 ?
balu
А зачем так издеваться над переменными? Конечно, это сделать можно, например через __setatrr__, но надо иметь очень веские основания. Гораздо проще использовать словари.
regall
Ну если уж так хочется, то можна заюзать могучий “exec”, хотя это конечно грязненько =):
>>> exec("x1 = 3")
>>> x1
3
>>>
mihalich
ну скажем так, основания веские, потому что одна и таже часть кода используется для различных целей, и в зависимости от того в какой части код используется, должны получится различные выходные значения… Мда, наверно не сильно понятно объяснил….

Ну вобщем думаю сделать так как написал в первом сообщении, но не знаю как
mihalich
regall
>>> exec(“x1 = 3”)
>>> x1
3
>>>
Это я уже читал, но не понял как это работает, переменной х1 назначена “3”. exec походу просто выполняет равенство…. а должно получится что 3 это новая часть переменной, т.е. как то нужно создать новую переменную в которой чатсь будет постоянной, а часть братся из х1
regall
>>> var = 'x'
>>> for i in range(10):
... exec(var+str(i)+' = ' + str(i))
...
>>> x1
1
>>> x2
2
>>> x3
3
>>>
PooH
mihalich
ну скажем так, основания веские, потому что одна и таже часть кода используется для различных целей, и в зависимости от того в какой части код используется, должны получится различные выходные значения… Мда, наверно не сильно понятно объяснил….
Озвучьте задачу целиком. Есть подозрение, что вы пытаетесь удалять гланды… хм… не через то отверстие
goblin_maks
я не гуру но тож заюзал бы словари, ИМХО очень удобно ними пользоваться…
balu
mihalich
одна и таже часть кода используется для различных целей, и в зависимости от того в какой части код используется, должны получится различные выходные значения…
Есть куча способов сделать такое и без объявления переменных в рантайме. Например, абстрактные классы или передача нужной функции в качестве параметра, или держать то, что нужно в словаре и дергать в зависимости от. Объявление переменной в рантайме неудобно использовать и еще хуже отлаживать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB