Уведомления

Группа в Telegram: @pythonsu

#1 Май 23, 2008 03:00:29

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Аналог PHP $$variable

Ну и на кой фиг такой изврат???
Разве это удобно?

P.S. Так лучше?



Отредактировано (Май 23, 2008 23:59:50)

Офлайн

#2 Май 23, 2008 12:01:52

sisqo
От:
Зарегистрирован: 2008-05-20
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

Спасибо всем за ответы , осбенно playpauseandstop :)

Ferroman
На форуме началась какая-то нездоровая тенденция “а как сделать на питоне как в перле/пхп”. Ребята это тотально неверный путь.
ZZZ
А нахрен оно надо???
Разве это удобно?
Полность согласен , делать кальку с одного языка на другой неправильно , я только начал изучать питон и он действительно мощнее и выразительнее php , но бывают ситуации когда ниобходима функциональность подобная “Переменные переменные” и к сожелению Питон не предостовляет удобного синтаксиса подобного пхп'шному $$var , о том когда и зачем это надо смотрите в коментах по линку.



Офлайн

#3 Май 23, 2008 12:10:39

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

То что я увидел по линку - не соответствует идеологии питона - “Simple is better than complex” и “Explicit is better than implicit”. Честно говоря, я даже не вижу, где это может быть полезно.
Ну и глобальные переменные - зло :) Хотя и иногда необходимое.
Наверняка для решения вашей задачи на питоне просто используется другой подход.

Отредактировано (Май 23, 2008 12:14:27)

Офлайн

#4 Май 23, 2008 16:55:35

slivlen
От:
Зарегистрирован: 2006-07-06
Сообщения: 764
Репутация: +  0  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

sisqo
к сожелению Питон не предостовляет удобного синтаксиса подобного пхп'шному $$var , о том когда и зачем это надо смотрите в коментах по линку.
И правда, питон не предоставляет удобного синтаксиса для написания такого стремного кода как в комментах =)



Офлайн

#5 Май 24, 2008 10:50:25

bialix
От:
Зарегистрирован: 2006-07-13
Сообщения: 774
Репутация: +  1  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

slivlen
sisqo
к сожелению Питон не предостовляет удобного синтаксиса подобного пхп'шному $$var , о том когда и зачем это надо смотрите в коментах по линку.
И правда, питон не предоставляет удобного синтаксиса для написания такого стремного кода как в комментах =)
+1



Офлайн

#6 Май 26, 2008 18:31:03

Leron
От:
Зарегистрирован: 2007-12-11
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

Забавно: я заменил ‘another_var’ на ‘another var’ и присвоение произошло:

>>> var = 'another var'
>>> locals()[var] = 'win!'
>>> locals()
{'__builtins__': <module '__builtin__' (built-in)>, '__doc__': None, 'var': 'another var', '__name__': '__main__', 'another var': 'win!'}
>>> another var
SyntaxError: invalid syntax
>>> eval("another var")

Traceback (most recent call last):
File "<pyshell#18>", line 1, in <module>
eval("another var")
File "<string>", line 1
another var
^
SyntaxError: unexpected EOF while parsing
>>> eval('another var')

Traceback (most recent call last):
File "<pyshell#19>", line 1, in <module>
eval('another var')
File "<string>", line 1
another var
^
SyntaxError: unexpected EOF while parsing
У меня вопрос - можно ли как нибуть получить значение этой переменной в переменной :lol: ?



Отредактировано (Май 26, 2008 18:31:23)

Офлайн

#7 Май 26, 2008 18:40:08

ZAN
От:
Зарегистрирован: 2007-06-10
Сообщения: 403
Репутация: +  10  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

Ну что тут не понятного? Если запихнул переменную с кувырком, через голову, точно также ее и получай.
print locals()
Питоновский парсер, однако, всегда будет воспринимать anther и var, как отдельные переменные. Естесственно, возникнет вопрос - зачем тогда вообще июзать locals? И какой вообще смысел от var и another var? Но это уже тебе решать, кстати, следуя по пути отдаления от идиомы KISS, попробуй воспользоватья monkey patching - покури parser модуль ;)



Офлайн

#8 Май 26, 2008 20:58:05

Leron
От:
Зарегистрирован: 2007-12-11
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

Я прочитал в английской вики что такое monkey patching. смяшно: мну великий хакер хакнет python :lol: . Я раньше вообще не знал что это возможно :O . Ладно по теме могу сказать что переменная переменной наверно может быть полезной штукой, вот я что придумал: читаем файлег с данными и генерим переменые:

Default.txt
DefValue0=4
DefValue1=4
DefValue2="Empty"
>>> f = open("C:\Python25\default.txt")
>>> DefVal = 0
>>> for val in f:
val = val.split("=")
DefVal = val[0].split()
locals()[DefVal] = val[1].split()
>>> DefValue2
'"Empty"'



Офлайн

#9 Май 27, 2008 00:14:21

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

Аналог PHP $$variable

В Питоне можно делать многое. Почти все. Но это не значит, что таким путем следует пользоваться направо и налево.
“Человек, получивший в руки молоток, смотрит на мир как на большой гвоздь.”
Не надо… Каждому инструменту - свое предназначение…
Есть и более элегантные пути решения проблемы.



Офлайн

#10 Май 27, 2008 10:07:47

playpauseandstop
От:
Зарегистрирован: 2007-10-31
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Аналог PHP $$variable

Leron
вот я что придумал: читаем файлег с данными и генерим переменые
а ConfigParser для кого сделали?!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version