- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
Какой есть аналог класса для данных?
class Record():
pass
r = Record()
r. asd = 1
Заебало класс объявлять, неужели для такого элементарного случая ничего не придумали?
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−2
Какой есть аналог класса для данных?
class Record():
pass
r = Record()
r. asd = 1
Заебало класс объявлять, неужели для такого элементарного случая ничего не придумали?
syoma 25.05.2018 18:00 # −1
guest8 26.05.2018 11:35 # −999
Doctor_Who 25.05.2018 18:00 # 0
guest8 25.05.2018 19:14 # −999
syoma 25.05.2018 19:40 # −1
А питон тут причём? Или разносить питон виндузятникам, у которых потом всё будет глючить и модули не будут ставиться?
syoma 25.05.2018 19:36 # 0
Doctor_Who 25.05.2018 20:06 # 0
Кстати, удав - самый тупой из всех скриптовых, встреченных мной. Хуже только руби.
666_N33D135 25.05.2018 20:09 # −1
Питония для этого и существует. Ну, ещё для веба. И для меня :)
Doctor_Who 25.05.2018 20:11 # 0
666_N33D135 25.05.2018 20:16 # −1
Doctor_Who 25.05.2018 20:19 # 0
666_N33D135 25.05.2018 20:26 # −1
Doctor_Who 25.05.2018 20:32 # 0
Мы очень испугались, что нам влетит за занятие хуйнёй во время урока, но он ласково улыбнулся, сказал, что не сдаст.
666_N33D135 25.05.2018 20:36 # −1
Doctor_Who 25.05.2018 20:41 # 0
...In the beginning was the word. And the version of the Word was 1.0
roskomgovno 26.05.2018 17:01 # −1
лучше только руби)
Ты, вероятно, имел какой-то опыт с одноглазым брючным питоном, но python-то тут причем?
bormand 25.05.2018 18:29 # −1
syoma 25.05.2018 19:37 # −1
subaru 27.05.2018 11:58 # 0
vistefan 25.05.2018 18:33 # 0
bormand 25.05.2018 18:33 # 0
Некрасиво же. Кучу мусора писать приходится.
roman-kashitsyn 25.05.2018 19:05 # +1
guest8 25.05.2018 19:12 # −999
roman-kashitsyn 26.05.2018 14:35 # −1
Нет уж, избавьте. Я на этом змеином говне пишу только если совсем уж другого выхода нет.
Desktop 26.05.2018 16:46 # 0
roman-kashitsyn 26.05.2018 22:47 # −1
Кстати, есть даже аналог Google.Docs для Jupyter
IGIL 26.05.2018 23:34 # −1
>>>"Jupyter"
Забыл.
guest8 26.05.2018 23:59 # −999
roman-kashitsyn 27.05.2018 11:11 # 0
> Python
Это не гугловое
roskomgovno 27.05.2018 18:39 # 0
guest8 27.05.2018 21:45 # −999
syoma 27.05.2018 00:58 # −1
Которой в "жаве" нету?
roskomgovno 27.05.2018 01:06 # 0
Код вербозен как джаве, а стат типизации нету совсем как в питоне
syoma 27.05.2018 06:03 # 0
roskomgovno 27.05.2018 10:05 # 0
строгая типизация? тогда таки да -- в питоне она строгая (слава богу кстати)
roman-kashitsyn 27.05.2018 11:30 # 0
Я имел в виду, что ошибки в программе находятся только в процессе выполнения. Люто бесит, когда через несколько минут после запуска из какой-то жопы либы прилетает исключение типа "я ожидал np.array, а ты мне дал list". Разумеется, в доке про ожидаемый тип ни слова, исследуешь апи путём проб и ошибок. Попробую сунуть X в O, авось не взорвётся.
roskomgovno 27.05.2018 12:10 # 0
Но ты прав: невозможность проверить тип статически (с помощью линтеров или компилятора) люто бесит в питоне
правда там уже есть pep 484, но я не уверен что его кто-то юзает
Desktop 27.05.2018 13:58 # 0
- внезапно в треде про интерпретируемый язык появилось слово "кокомпилятор"
guest8 27.05.2018 14:01 # −999
bormand 28.05.2018 07:21 # 0
666_N33D135 28.05.2018 07:30 # 0
> Как конпеляция связана с проверкой типов?
В Питонии никак.
syoma 27.05.2018 19:20 # 0
roman-kashitsyn 27.05.2018 23:24 # 0
У нас используется и сносно довольно работает, но только на бэкенде и в тулах, а в юпитер-нотбуки это не интегрировано.
roskomgovno 28.05.2018 00:30 # 0
roman-kashitsyn 28.05.2018 13:15 # 0
Нет, https://github.com/google/pytype
syoma 27.05.2018 19:18 # 0
Самый кайф это
Само собой, редкое событие происходит у клиента, но не у разраба.
roman-kashitsyn 27.05.2018 22:52 # 0
Я не знаю, кто придумал эти "термины", но к реальной науке они никакого отношения не имеют. Я написал "типобезопасность", имея в виду лишь отсутствие вменяемого тайпчекера из коробки. Это даже не означает, что такого тайпчекера для бидона никогда не появится (mypy, pyre), и он внезапно станет "статически типизиованным".
syoma 01.06.2018 07:01 # 0
roskomgovno 27.05.2018 01:05 # −1
IPython Notebook может быть
С другой стороны не сосет-ли он у Wolfram / Mathematica?
roman-kashitsyn 27.05.2018 11:23 # 0
Mathematica это, конечно, круто, но инструменты, используемые в науке, должны быть бесплатными и публично доступными.
guest8 27.05.2018 12:28 # −999
roman-kashitsyn 27.05.2018 12:57 # 0
В самом популярном курсе по ML на курсере, кстати, использовали Octave, и он мне показался гораздо более интуитивно понятным, чем тот же numpy.
Остальное не пробовал. Иногда балуюсь с Maxima, но ей до Mathematica по возможностям и удобству ещё очень, очень далеко.
Desktop 27.05.2018 16:26 # 0
roskomgovno 27.05.2018 16:53 # 0
ща сема заорет про пердолинг
Desktop 27.05.2018 17:09 # 0
subaru 27.05.2018 10:53 # 0
roman-kashitsyn 27.05.2018 11:05 # 0
Нет. Поэтому ковырять питона приходится редко, но совсем его не видеть не получается. Плюс многие внутренние утилиты на питоне написаны, иногда окунаюсь, чтобы починить что-нибудь раздражающее. Благо, у нас во многих местах уже type hints используются.
subaru 27.05.2018 11:07 # 0
roman-kashitsyn 27.05.2018 11:20 # 0
Совсем мелкие утилитки я на bash набрасываю, так куда удобнее, когда надо несколько бинарников утилит склеить. Из последнего:
"Найди все таргеты билд-системы, которые напрямую зависят от X и вызови утилиту U на с++-исходниках каждой зависимости".
syoma 25.05.2018 19:35 # −1
roman-kashitsyn 26.05.2018 14:33 # −1
Как будто что-то плохое.
666_N33D135 26.05.2018 15:52 # −1
syoma 26.05.2018 21:36 # −1
syoma 27.05.2018 00:58 # −1
roskomgovno 26.05.2018 17:14 # −2
руби)
roman-kashitsyn 26.05.2018 22:31 # −1
roskomgovno 27.05.2018 01:07 # −1
но вообще да: написать структуру в си проще, чем класс в джаве например
syoma 27.05.2018 06:02 # 0
roskomgovno 27.05.2018 10:04 # 0
с тустрингом, хешкодом, конструктором и геттерами
roman-kashitsyn 27.05.2018 11:09 # 0
roskomgovno 27.05.2018 18:40 # 0
на восьмой
(хинт: в котлине -- можно)
roman-kashitsyn 27.05.2018 11:49 # +1
Если тебе надо конвертировать стракты в строку или использовать как ключ в хэш-таблицы, то не проще. По правде говоря, мне почти никогда не надо. Я часто использую анонимные структуры. Например, что-то вроде
1024-- 27.05.2018 19:56 # 0
guest8 25.05.2018 19:08 # −999
guest8 25.05.2018 19:09 # −999
guest8 25.05.2018 19:26 # −999
syoma 25.05.2018 19:37 # −1
1024-- 25.05.2018 19:13 # 0
guest8 25.05.2018 19:16 # −999
1024-- 25.05.2018 19:24 # −1
guest8 25.05.2018 19:34 # −999
1024-- 25.05.2018 19:33 # +1
roskomgovno 25.05.2018 19:47 # −1
а по друге в 37 есть датаклассы а еще есть какие-то проекты где можно декоратор юзать
и наконец есть неймдтуплы
но ооп в питоне дюже вербозное, тут не поспоришь
syoma 25.05.2018 19:51 # −1
Хто сказал?
3.7 уже вышел? Тупл немутабельный, я выше писал.
Нужно например здесь
nonlocal завезли только в тройку.
roskomgovno 25.05.2018 19:52 # −1
pycharm))
ну pep8 тоже наверное
37 будет в июне
читни пепца: https://www.python.org/dev/peps/pep-0557/
syoma 25.05.2018 19:54 # −1
Ну как будет - позовёте.
syoma 25.05.2018 22:28 # −1
Нинужно. Неужели нельзя было вместо значения принимать функцию?
666_N33D135 25.05.2018 19:50 # −1
syoma 25.05.2018 19:54 # −1
Doctor_Who 25.05.2018 20:06 # +1
Дебоши, драки, кутежи
guest8 27.05.2018 14:02 # −999
666_N33D135 25.05.2018 20:04 # 0
syoma 25.05.2018 20:35 # −1
666_N33D135 25.05.2018 20:42 # −1
syoma 27.05.2018 19:21 # 0
subaru 27.05.2018 19:35 # 0
a = type("", (), dict(asd=42))()
syoma 27.05.2018 19:43 # 0
3oJIoTou_xyu 26.05.2018 16:02 # −1
666_N33D135 26.05.2018 16:05 # −1
3oJIoTou_xyu 26.05.2018 16:13 # −1
3oJIoTou_xyu 26.05.2018 18:06 # 0
Ну и просто забава
666_N33D135 26.05.2018 19:31 # −1
666_N33D135 26.05.2018 19:38 # −1
> hjashsnasmm
Кто такие? Неужели не могли осмысленные имена дать?
666_N33D135 26.05.2018 20:29 # −1
Я понял. У необъявленной таблицы вызывается метод, и аргументом передается _G. А то мне сперва показалось, что ier8u43uirhn_________ встроенная штука.
3oJIoTou_xyu 27.05.2018 05:52 # 0
Любой не объявленной глобальной переменной, в место nil будет хуярить, таблицу. Так как любая глобальная переменная объявляется в таблице _G, то собственно прикручиваем поведение __index, которая возвращает таблицу с поведением __index (Это типа условие если index не существует то) обращается в случае к _G.
И того получаем, что даже аллаху присваевается "псовдокласс" даже не объявляя его.
666_N33D135 27.05.2018 06:12 # 0
3oJIoTou_xyu 27.05.2018 06:35 # 0
Так как print(allah,allah); выдают разные таблицы, следовательно в данном случае мы просто срем в памяти, теряя ссылки на все созданные таблицы.
Просто вызывая несуществующий глобаль мы возвращаем псевдокласс, значит allah = allah будет работать как нужно, таблица не будет утеряна. И аллах уже будет объявлен.
Можно быстренько исправить кодик чтоб несуществующие присваивались.