LINUX.ORG.RU
ФорумTalks

Питонистам

 


1

2

А как питонисты разбирают в коде, какие переменные про что? Списки, сеты, мапы, вот это всё. Просто предполагается, что помнишь?

★★★

Ответ на: комментарий от ggrn

Переизобрели JSDoc. Даже с этим стормозили на четверть века

TooPar
()

А как питонисты разбирают в коде, какие переменные про что?

А как «не-питонисты» разбирают какие переменные про что?

vvn_black ★★★★★
()

По контексту использования же. (Еще можно в отладчике подсмотреть, но это секретное знание для избранных, никому не сообщайте).

bread
()

Ты список от мапы не отличаешь или что? Или никогда про typing не слышал?

upcFrost ★★★★★
()

Надеюсь, ты не про венгерскую нотацию? И да, IDE + аннотации типов. В мелких программах можно без аннотаций, в крупных без них совсем плохо.

x3al ★★★★★
()
Ответ на: комментарий от fsb4000

Я нет.

Оно попросту очевидно, да и всегда можно перейти к определению. А вообще, сейчас type hints во все поля.

WitcherGeralt ★★
()

Третий питон уже давно поддерживает указание типов переменных. И всякие IDE типа pycharm прекрасно ориентируются по ним.

Aswed ★★★★★
()

как питонисты разбирают в коде, какие переменные про что

Безотносительно питона, есть такое волшебное средство, называется комментарии.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)

Ну начнём с того что питон тут ничем не выделяется, ибо даже в плюсах давно auto во все поля. А так даже никогда не задумывался. Когда читаешь чужой код, типы вообще не нужно знать. Максимум - скаляр или коллекция, и это из контекста понятно. Когда пишешь код используя чужое API, сигнатуры есть в документации. Когда пишешь свой код в принципе всё помнишь.

А так-то сейчас в моём питоновском коде больше аннотаций типов чем в плюсовом.

slovazap ★★★★★
()
Ответ на: комментарий от fsb4000

наверное, питонисты просто работают в IDE, а не в блокноте.

И в блокноте, и в vim. Никакой надобности в IDE для питона никогда не испытвал.

slovazap ★★★★★
()
Ответ на: комментарий от ChekPuk

Не сказывается. Толку - статическая проверка вместо падений в рантайме и документация.

slovazap ★★★★★
()

утино разбирают

крякаяет утка

мяукает кошка

вчём у тя трудность?

qulinxao3
()

Мы, питонисты, прежде всего умеем читать с пониманием, а наша память превосходит память программистов на Java и золотых рыбок. Книжки с ударениями для младшего школьного возраста.

А еще мы пишем код, который легко читать и понимать.

shimon ★★★★★
()
Ответ на: комментарий от ChekPuk

Т.е. на читаемость кода тебе плевать

Aswed ★★★★★
()
Ответ на: комментарий от ChekPuk

Ну и помимо очевидной плюхи ввиде повышения читаемости и проверки типов в IDE, есть всякие штуки связанные с метапрограммированием вроде pydantic которые могут автоматически генерить сложные сериалайзеры ориентируясь по указаниям типов. Или автоматически мокать функции исходя из типов mock.create_autospec().

Aswed ★★★★★
()
Ответ на: комментарий от ggrn

начиная с https://docs.python.org/3.5/library/typing.html смотри какой костыль придумали!

Ты хотел сказать. Ибо:

~> cat gvido.py 
#!/usr/bin/python3

def greeting(name: str) -> str:
    print(name)
    return name

greeting("test")
greeting(148866613)
~> ./gvido.py 
test
148866613
~> 

Упс.

Динамическая типизация рулит кричали они, динамическая типизация педалит! А потом с грязным задом прилепили type hints. Когда их ждать обязательными, чтобы Python наконец-то стал серьёзным языком?

EXL ★★★★★
()
Ответ на: комментарий от sparks

А никак, питон это не строгая типизация, где надо строго, есть пачка pep которые покрывают конкретные кейсы, аля

Python имеет динамическую строгую типизацию. Язык C имеет статическую слабую типизацию. У Java статическая строгая (master race). У JavaScript динамическая слабая.

EXL ★★★★★
()
Ответ на: комментарий от EXL

да я уже написал что перепутал)) Кстати есть занятный кейс для C++, чтобы понять когда char число, а кода символ

char c = 'A';
cout << c << " " << +c << endl;
sparks ★★★
()
Ответ на: комментарий от fsb4000

Там у каждой переменной пишется тип.

def fun(i):
    if i > 10:
        return None
    if i > 5:
        return "A"
    if i > 0:
        return []
    return {}

x = fun(i)

что он напишет для x?

cvs-255 ★★★★★
()
Ответ на: комментарий от x3al

Я в некий момент пришел к тому, что если программа становится непонимабельной без аннотации типов, значит лучшее ее писать на чем-нибудь со статической типизацией. Например C#

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

Это замечательная идея, но когда у тебя есть бывший прототип-на-питоне, случайно выросший до 500к строк кода плюс команда из сотни питонистов, переписывать это на более вменяемом языке довольно сложно.

x3al ★★★★★
()
Ответ на: комментарий от EXL

Это нужно ДЛЯ программистов, а не ОТ программистов. IDE сигнализирует при неверных типах, а серьёзные проекты используют статические анализаторы - этого достаточно.

InterVi ★★★★
()
Ответ на: комментарий от fsb4000

питонисты просто работают в IDE, а не в блокноте

Наглая ложь! Вима хватает.

По теме, смысл передаётся именами. А «списки сеты мапы» – это малосущественные детали реализации, редко достойные внимания.

DonkeyHot ★★★★★
()
Ответ на: комментарий от slovazap

ибо даже в плюсах давно auto во все поля

4.2

Декларация функций без auto. Если это не какой-то наркоманский шаблон.

RazrFalcon ★★★★★
()

Просто предполагается, что помнишь?

type(x)
yvv ★★☆
()
Ответ на: комментарий от InterVi

Это нужно ДЛЯ программистов, а не ОТ программистов. IDE сигнализирует при неверных типах, а серьёзные проекты используют статические анализаторы - этого достаточно.

А раньше аргумент был что чистой динамической типизации – достачно.

Оказалось недостаточно.

EXL ★★★★★
()
Ответ на: комментарий от DonkeyHot

По теме, смысл передаётся именами.

Венгерка на минималках! Даёшь str, num, dct, lst, tup в каждый дом аргумент!

EXL ★★★★★
()
Ответ на: комментарий от EXL

Так её и достаточно. Это вина энтерпрайзов, использующих неподходящий язык и проталкивающих свои хотелки. В пыху тоже завезли, потому что есть даже такие дегенераты, которые пишут большие проекты на пыхе, а потом требуют от разработчиков сделать из пыхи джаву. Разве отвёртка виновата в том, что ей забивают гвозди?

InterVi ★★★★
()
Ответ на: комментарий от InterVi

Нет, это вина питонистов. Часть питонистов остались свободными когда всех джавистов и даже шарперов разобрали остальные тырпрайзы. Это ж нельзя так просто оставлять. Поэтому питон сделали недоджавой и набрали питонистов чтобы на этом кодить.

x3al ★★★★★
()
Ответ на: комментарий от EXL

Ты плохо читал. «str, num, dct, lst, tup» – несущественные детали. Человечий мозг слишком слаб, не стоит его ещё и этим перегружать.

DonkeyHot ★★★★★
()
Последнее исправление: DonkeyHot (всего исправлений: 1)
Ответ на: комментарий от DonkeyHot

А «списки сеты мапы» – это малосущественные детали реализации

Там бы интерфейсы не помешали, а вот прыгать с бубном вокруг примитивных типов достойно кодомакаки. Рантайм покажет если надо, тем более в питоне нет другого надежного способа определить типы.

bread
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.