Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха переехала на новый сервер, ура!

Краснодарское время: 24 Май, 2012, 06:08:00

Страниц: 1 [2] 3 4 5
Печать
Автор Тема: Что я, %username%, ненавижу в Python  (Прочитано 2793 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
vasa_c    ↓ 
14 Апрель, 2010, 06:33:59
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

хорошо
 
7. Лямбды являются не полноценными функциями, а выражениями. Сколько-нибудь сложной структуры в них не реализовать.
Можно конечно сначала определить функцию, а потом её использовать. Но это лишние телодвижения, засорение контекста и не многим удобнее чем даже в PHP определить функцию и передать дальше её имя.
Записан

adw0rd    ↓ 
14 Апрель, 2010, 06:46:59 , спустя 13 минут
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Да, согласен, в жс они лучше... надо почитать почему они не такие как в жс, например
Спустя 8 секунд добавил
в силу каких причин
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
15 Апрель, 2010, 08:52:49 , спустя 1 день 2 часа 5 минут 50 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Всё-таки продолжим по-тихоньку
3. Так используй str.__len__
Использовать нужно так как сделано в языке и рекомендовано.
А вот почему так сделано не понятно.
 
Например, self-аргумент в методах тоже может вызывать споры и непонимание, но за ним всё-таки стоит своя идеология.
За len() я её не вижу.
Если она есть - объясните.
Записан

adw0rd    ↓ 
15 Апрель, 2010, 11:38:42 , спустя 2 часа 45 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Объяснение Гидо является здесь:
 

 
    Прежде всего, я выбрал LEN (X) по сравнению с x.len () для HCI причинам (Def __len__ () пришла намного позже). Существуют две взаимосвязанные причины на самом деле, как HCI:
 
    (а) для некоторых операций, префиксов обозначения просто читает лучше, чем Postfix - префикс (и инфиксные!) операции имеют давние традиции в области математики, где любят обозначения помощью визуальных математик думать о проблеме. Сравните легкий, с которой мы перепишем формулу, как X * (A + B) в X * X + * B на неуклюжесть делает то же самое с сыром обозначения OO.
 
    (B) Когда я прочитал кодом, который говорит, LEN (X) Я знаю, что он подал запрос на длину чего-то. Это говорит мне две вещи: результат является целым числом, и этот аргумент является своего рода контейнер. Наоборот, когда я читал x.len (), я должен уже знаем, что X является своего рода контейнером, реализующий интерфейс или наследовать от класса, который имеет стандартный LEN (). Свидетель путаницы мы иногда, когда есть класс, который не выполняет отображение имеет получите () или ключей () метод, или что-то не является файл Write () метод.
 
    Говорит то же самое по-другому, я вижу 'лень как встроенный в эксплуатацию. Я бы очень не хотелось терять. / ... /

У Гвидо есть акцент небольшой в тексте :)
Я есть взять этот тут http://ru.how-to.mobi/index.php?id=83983
Спустя 4 минуты 50 секунд добавил
О, я нашел кладезь ответов!
http://www.python.org/doc/faq/general/#why-does-python-use-methods-for-some-functionality-e-g-list-index-but-functions-for-other-e-g-len-list
Спустя 23 секунды добавил
И следующий сразу
4.8   Why is join() a string method instead of a list or tuple method?
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
19 Апрель, 2010, 07:02:53 , спустя 3 дня 19 часов 24 минуты 11 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

"Историческое наследие", слабая отмаза, так как пых такой уродливый по мнению многих тоже во многом из-за своего наследия. А про неуклюжесть вообще низачот.
 
Насчет join-на придумал своё объяснение, которое, кажется, даже более по существу.
В JS мы пишем [1,2,3].join("") и нам пох, так как там только для массива join и есть
А в питоне всё что угодно может быть итерируемым в любом месте иерархии.
 
join() по сути что делает - перебирает итерируемую последовательность, приводит элементы к строке и склеивает.
Т.е. реализация у неё будет всегда одна.
А пихать эту реализацию во все класс, поддерживающие перебор излишне геморно
Записан

vasa_c    ↓ 
24 Июль, 2010, 02:52:08 , спустя 95 дней 19 часов 49 минут 15 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Форматирование строки:
Python

qwerty = "Строка"
huerti = 25
print("qwerty=%s huerti=%d" % (qwerty, huerti))

Да, последнее время рекомендуется для этого дела .format(), но всё равно интересно почему
 
1. Нужно указывать тип параметров (%s, %d), ведь это не Ц, это Питон, мягко типизируемый и любящий полиморфизм, он же типы переменных сам должен знать на этапе выполнения.
2. Почему параметры только в кортеже передавать можно? Почему в списке нельзя?
Записан

adw0rd    ↓ 
24 Июль, 2010, 03:04:17 , спустя 12 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

1. Видимо отголоски прошлого, сделали по аналогии с printf. Да, юзай format()
2. А чем кортеж не устраивает? Можно список преобразовывать в кортеж:
Python

print("qwerty=%s huerti=%d" % tuple(my_list))
 
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
vasa_c    ↓ 
24 Июль, 2010, 03:06:25 , спустя 2 минуты 8 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

А чем кортеж не устраивает?
Иногда сформировать нужно список параметров последовательно.
 
Да, юзай format()
оки
Записан

soulgarden    ↓ 
24 Июль, 2010, 07:37:18 , спустя 4 часа 30 минут 53 секунды
НЕ ХУЕТА! ХУЕТА!

Карма: 5
Сообщений: 766
Сила слова: 0.65

хочу начать изучать новый язык. подумываю о питоне. стоит ли изучать именно его? или что-то другое?
Записан
vasa_c    ↓ 
24 Июль, 2010, 07:50:59 , спустя 13 минут 41 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 81
Сообщений: 2459
Сила слова: 3.29

Хочешь что-то сделать - сделай и нефиг ни у кого спрашивать :)
Записан

adw0rd    ↓ 
24 Июль, 2010, 07:54:56 , спустя 3 минуты 57 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67


Хочешь что-то сделать - сделай и нефиг ни у кого спрашивать :)
+1
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
adw0rd    ↓ 
25 Январь, 2011, 10:26:07 , спустя 184 дня 15 часов 31 минуту 11 секунд
НЕ ХУЕТА! ХУЕТА!

эдво
Группа: в ухо

Карма: не нужна
Сообщений: 17615
Сила слова: 1.67

Лямбды
http://habrahabr.ru/blogs/python/111756/
Записан

Python, Django, Git, Emacs, Nginx, MySQL, SphinxSearch, FreeBSD/Linux
Мой блог * Кинсбург * Либург * Я на GitHub
artoodetoo    ↓ 
25 Январь, 2011, 06:53:42 , спустя 8 часов 27 минут 35 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3805
Сила слова: 3.26

"Императивность ортогональна функциональности" - я впадаю в депрессию от таких фраз. Это как тест на полноценность. Хочется сказать что-нибудь дерзкое: "Дяденька, я ведь не настоящий программист" или "Завали своё дуло".
 
Откуда идут «функциональные» корни Python. Куда они идут эти корни!
Лямбды существуют уже лет пятьдесят в самых примитивных языках
« Последнее редактирование: 25 Январь, 2011, 06:53:22 от artoodetoo » Записан
AlexB    ↓ 
09 Август, 2011, 11:17:03 , спустя 196 дней 3 часа 23 минуты 21 секунду
НЕ ХУЕТА! ХУЕТА!

Группа: в ухо

Карма: 89
Сообщений: 3424
Сила слова: 2.6

В питоне элементы в словаре неупорядочены. Меня это дико напрягает, хотя понятно, что это более строгий и логичный подход, чем то как устроены ассоциативные массивы в пхп ...
Записан

phpdude    ↓ 
09 Август, 2011, 11:18:57 , спустя 1 минуту 54 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

чем то как устроены ассоциативные массивы в пхп ...
так они там тоже неупорядочены ... или я тебя неправильно понял :-)
 
по умолчанию то они отсортированы в порядке добавления в массив и не более ..
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
Страниц: 1 [2] 3 4 5
Печать
 

Перейти в:  

Этот топик скрыли: NRG, Sinkler, artoodetoo, Ewg777, SpartakuS, Status, lekafe