ФорумПрограммированиеPython → Что я, %username%, ненавижу в Python

Что я, %username%, ненавижу в Python

  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 14 апреля 2010 г. 18:33, спустя 13 минут 41 секунду

    хорошо

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

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 14 апреля 2010 г. 18:46, спустя 13 минут

    Да, согласен, в жс они лучше… надо почитать почему они не такие как в жс, например
    Спустя 8 сек.
    в силу каких причин
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 15 апреля 2010 г. 20:52, спустя 1 день 2 часа 5 минут

    Всё-таки продолжим по-тихоньку
    3. Так используй str.__len__

    Использовать нужно так как сделано в языке и рекомендовано.
    А вот почему так сделано не понятно.

    Например, self-аргумент в методах тоже может вызывать споры и непонимание, но за ним всё-таки стоит своя идеология.
    За len() я её не вижу.
    Если она есть - объясните.
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 15 апреля 2010 г. 23:38, спустя 2 часа 45 минут 53 секунды

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



    Прежде всего, я выбрал 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
    Спустя 290 сек.
    О, я нашел кладезь ответов!
    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?
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 19 апреля 2010 г. 19:02, спустя 3 дня 19 часов 24 минуты

    "Историческое наследие", слабая отмаза, так как пых такой уродливый по мнению многих тоже во многом из-за своего наследия. А про неуклюжесть вообще низачот.

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

    join() по сути что делает - перебирает итерируемую последовательность, приводит элементы к строке и склеивает.
    Т.е. реализация у неё будет всегда одна.
    А пихать эту реализацию во все класс, поддерживающие перебор излишне геморно
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 24 июля 2010 г. 14:52, спустя 95 дней 19 часов 49 минут

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

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


    Да, последнее время рекомендуется для этого дела .format(), но всё равно интересно почему

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

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 24 июля 2010 г. 15:04, спустя 12 минут 9 секунд

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

    print("qwerty=%s huerti=%d" % tuple(my_list))
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 24 июля 2010 г. 15:06, спустя 2 минуты 8 секунд

    А чем кортеж не устраивает?

    Иногда сформировать нужно список параметров последовательно.

    Да, юзай format()

    оки
  • soul

    Сообщения: 790 Репутация: N Группа: Кто попало

    Spritz 24 июля 2010 г. 19:37, спустя 4 часа 30 минут 53 секунды

    хочу начать изучать новый язык. подумываю о питоне. стоит ли изучать именно его? или что-то другое?
  • vasa_c

    Сообщения: 3131 Репутация: N Группа: в ухо

    Spritz 24 июля 2010 г. 19:50, спустя 13 минут 41 секунду

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

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 24 июля 2010 г. 19:54, спустя 3 минуты 57 секунд


    Хочешь что-то сделать - сделай и нефиг ни у кого спрашивать :)
    +1
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • adw0rd

    Сообщения: 22959 Репутация: N Группа: в ухо

    Spritz 25 января 2011 г. 10:26, спустя 184 дня 15 часов 31 минуту

    Лямбды

    http://habrahabr.ru/blogs/python/111756/
    https://smappi.org/ - платформа по созданию API на все случаи жизни
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 25 января 2011 г. 18:53, спустя 8 часов 27 минут 35 секунд

    "Императивность ортогональна функциональности" - я впадаю в депрессию от таких фраз. Это как тест на полноценность. Хочется сказать что-нибудь дерзкое: "Дяденька, я ведь не настоящий программист" или "Завали своё дуло".

    [tt]Откуда идут «функциональные» корни Python[/tt]. Куда они идут эти корни!
    Лямбды существуют уже лет пятьдесят в самых примитивных языках
    ιιlllιlllι унц-унц
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 9 августа 2011 г. 23:17, спустя 196 дней 3 часа 23 минуты

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

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 9 августа 2011 г. 23:18, спустя 1 минуту 54 секунды

    чем то как устроены ассоциативные массивы в пхп …

    так они там тоже неупорядочены … или я тебя неправильно понял :-)

    по умолчанию то они отсортированы в порядке добавления в массив и не более ..
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!