- 1
- 2
- 3
- 4
try: # эталонный говнокод
height
except NameError:
height = -99999
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−17
try: # эталонный говнокод
height
except NameError:
height = -99999
imihajlov 08.12.2015 11:16 # +1
Dummy00001 08.12.2015 12:57 # 0
Vasiliy 08.12.2015 13:03 # 0
Dummy00001 08.12.2015 13:20 # 0
динамические переменные это когда, например, под `if`ом переменной присваивается значение и таким образом переменная создается. в дальнейшем коде, если переменная была создана, то к ней можно обращатся. если переменная не была создана, то обращение к ней будет вызывать run-time ошибку.
я на питоне мало программировал что бы осознать эту тонкость.
Vasiliy 08.12.2015 13:30 # +1
Dummy00001 08.12.2015 14:10 # +1
как-то даже странно, что в перле есть объявление переменных - а в питоне нет.
guest 08.12.2015 14:38 # 0
Dummy00001 08.12.2015 15:39 # +1
типа:
почти во всех человеческих языках это будет синтаксической ошибкой, потому что `a = 1` существовало - и умерло - вместе с контекстом ветки `if`а.
Vasiliy 08.12.2015 15:42 # 0
в пхп только функциями и неймспейсами ограничена.
в питоне аналогично.
Dummy00001 08.12.2015 15:57 # 0
и в жабе. и в go. и в функциональных языках. и блин даже в перле. другими словами: подавляющее большинство языков.
kurwa 13.12.2015 01:37 # 0
> переменные
1024-- 13.12.2015 04:23 # 0
bormand 13.12.2015 07:57 # 0
1024-- 13.12.2015 08:47 # 0
bormand 13.12.2015 08:56 # 0
guest 19.03.2016 04:46 # 0
CHayT 22.12.2015 10:27 # +1
spoiler: variables, они же переменные
guest 21.12.2015 23:07 # 0
guest 08.12.2015 16:05 # −3
штоа????
как раз в анси си она ограничена функцией (для автоматических переменных)
и в JS тоже
а везде в других языках она ограничена блоком
roman-kashitsyn 08.12.2015 16:06 # +4
Иди-ка почитай стандарт, гость. Даже в сишке 89 года можно объявлять переменные в начале блока.
bormand 08.12.2015 17:52 # +4
bormand 08.12.2015 18:28 # +1
guest 22.12.2015 22:49 # 0
>логика
Не ищи несуществующего.
roman-kashitsyn 08.12.2015 15:43 # 0
guest 08.12.2015 16:06 # 0
WGH 12.01.2016 01:28 # 0
Если внутри функции это имя (допустим 'a') не используется как локальная переменная - то есть нигде нет выражения 'a = ...', -- то при попытке прочесть её интерпретатор полезеть искать её наверх по скоупам, включая глобальный, а если не найдет, кинет NameError.
Если же такое выражение хоть где-то есть внутри функции, но не было вызвано до обращения, то интерпрератор никуда не полезет и сразу кинет UnboundLocalError.
https://ideone.com/daKQlt
3_14dar 12.01.2016 02:22 # 0
3_14dar 13.12.2015 17:17 # 0
gost 08.12.2015 14:39 # +1
Dummy00001 08.12.2015 15:49 # 0
roman-kashitsyn 08.12.2015 15:51 # 0
Нет. Это поиск в хэш-табличке
3_14dar 13.12.2015 17:18 # 0
6oHo6o 24.08.2021 21:56 # 0