Форум сайта python.su
Собственно сабж , возможно ли в питоне “Переменные переменных” , то есть, имя переменной, которое может быть определено и изменено динамически аналогично PHP'шному Переменные переменные
Офлайн
Не уверен что понял что такое ‘переменная переменных’. У меня мозг в рекурсию входит при попытке осознать языковую конструкцию: ‘Переменная переменная берет значение переменной и рассматривает его как имя переменной.’
На ум приходит только:
'Я хочу быть как солнце, сидя в душной ПЕЛЬМЕННОЙ'
Отредактировано (Май 22, 2008 20:00:56)
Офлайн
Если субж, то:
>>> a = 1
>>> print globals()
1
Офлайн
Можно использовать функцию eval().
Вот пример:
a= 23
b = 'a'
print eval(b)
----------------
23
a= 23
b = 'a + 2'
print eval(b)
----------------
25
Отредактировано (Май 22, 2008 19:56:18)
Офлайн
globals - для глобальных переменных. Внутри функции следует использовать locals():
def u():
a = 23
locals()['a']
u()
Отредактировано (Май 22, 2008 19:57:59)
Офлайн
ZAN,
shiza
вы вообще не о том советуете sisqo
поясню…
есть пхп-код:
<?php $var = 'another_var' $$var = 'win!' echo 'Var: ' , $var , ', Another var: ' , $another_var , PHP_EOL; ?>
Var: another_var, Another var: win!
In [1]: var = 'another_var' In [2]: locals()[var] = 'win!' In [3]: print 'Var: ' , var , ', Another var: ' , another_var Var: another_var , Another var: win!
Офлайн
playpauseandstop
Ну почему, ZAN как раз все как надо подсказал.
Офлайн
shiza
слишком неочевидно, имо
Офлайн
Боюсь что покажусь не оригинальным, но python и php - разные языки. С разным синтаксисом и идеологией. С разным подходом к программированию.
На форуме началась какая-то нездоровая тенденция “а как сделать на питоне как в перле/пхп”. Ребята это тотально неверный путь. Делать кальки с одних язиков на другие - все равно, что переводить стихи с разных языков. А то ведь читаешь такой пост и все норовит написать - “нравится как в пхп - так и пиши на пхп, чего людям голову морочить”. Понятно что хочется использовать предыдущий опыт, но не подгоняя же один язык под другой.
Прошу прощения за злостный оффтоп - но мне показалось что таки просьбы как-то последнее время сильно участились, и я так погляжу, даже поощряются….
Офлайн
Нельзя сразу войти в новое целиком, отбросив все старое.
Уже после вхождения, ПОСТЕПЕННО избавляешься от старого и приобретаешь новое.
Офлайн