Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2018 10:55:37

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

FishHook
Ну-ка объясни дяде.
AlekseyPython
Это вы к своей жене так обращайтесь.
Дядя? К жене? Экий ты затейник.



Офлайн

#2 Дек. 4, 2018 11:45:10

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

AlekseyPython
Вот что думают другие программисты про ‘self.’:
вы хоть сами читали что там на выдаче, в основном там новички спрашивают зачем нужен self и почему без него ничего не работает.

Если уж хотите чегонить нарыть гуглите “python self hell”, но в общем там в выдаче три или четыре ссылки действительно по теме, а остальное просто про self. Лично мне это всегда казалось удобным так как никогда не перепутаешь что являеться членом класса а что нет. Да и достаточно часто self приходиться предавать как аргумент еще куданить, может поэтому всех все утраивает, и проблема не кажется столь актуальной?
НОе если у вас совем уж подгорает , можете посмотреть презентацию Armin Ronacher “5 years of bad ideas”, там есть такой пункт как неявный self: https://speakerdeck.com/mitsuhiko/5-years-of-bad-ideas?slide=58

или вот еще такое “решение” http://code.activestate.com/recipes/362305-making-self-implicit-in-objects/
написано для 2-го пайтона, на третьем походу не работает, но думаю общую идею вы сможете уловить.
Хотя ИМХО все эти “решения” создают больше проблем чем решают.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Офлайн

#3 Дек. 4, 2018 11:53:39

AlekseyPython
Зарегистрирован: 2018-10-24
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

Если уж хотите чегонить нарыть гуглите “python self hell”

Посмотрите, пожалуйста, два последних слова в топике.

Офлайн

#4 Дек. 4, 2018 11:55:15

AlekseyPython
Зарегистрирован: 2018-10-24
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

FishHook
Дядя? К жене? Экий ты затейник.
Там написано "Ну-ка объясни дяде." К тому же нет запятой, которую используют при обращении.

Офлайн

#5 Дек. 5, 2018 00:44:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

AlekseyPython
Второй раз напишу: я ничего не объединяю в пакеты и не создаю компоненты.
Понимаешь, вся эта модульная система, пакетная система хоть в каком языке сделана не просто так. Она несёт определённую функцию в разработке проекта. Пакет или модуль является абстракцией. Мы берём эту абстракцию и используем. Мы просим её сделать что-то. Например, пакет “Машина” включает в себя всё, что касается машины. Мы можем с его помощью собрать машину, починить машину, запустить машину. То, как это делается, лежит полностью на этом пакете (пакет - это набор модулей, а модуль - набор классов, а класс - набор операций). Поэтому когда тебе надо взять машину и поехать на ней в другом проекте, ты её не пишешь с нуля, а берёшь пакет “Машина” и копируешь его в другой проект. Таким образом ты сегодня написал одну машину, а завтра использовал её в десяти разных проектах. Так ты экономишь своё время. Потом всё сводится к сборке нового проекта путём копирования в него уже разработанных пакетов. Так за день можно написать большую программу. Ну и пакет может быть компонентом программы, но и компонент программы может состоять из нескольких пакетов. Понимаешь масштабы?

http://www.imageup.ru/img87/3228879/car.png.html


AlekseyPython
Тоже самое можно сказать про функции. Почему за константы боимся, а за функции нет? Тогда получается и все функции надо оборачивать классами, чтобы не было пересичения имен.
Для функций мы создаём пространство имён. Либо оно в виде класса как коробочки для функций, либо оно задаётся в имени древним способом. Просто в питоне функции почти не используются. Если же они используются, то их ограниченное количество и они заперты в своём модуле. Помнишь, да, если функций стало слишком много в модуле, то что-то не то и надо перепроектировать это дело, так как код должен читаться в любом случае (удерживать в голове нужно как содержимое одной функции свободно, так и содержимое одного модуля свободно).



Отредактировано py.user.next (Дек. 5, 2018 01:26:59)

Офлайн

#6 Дек. 5, 2018 08:27:21

AlekseyPython
Зарегистрирован: 2018-10-24
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Как избавиться от self в методах классов?

py.user.next, спасабо за теорию.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version