Minoru 08.07.2011 21:17 netbook

Итак, ООП в Python:
• сокрытие (приватные члены)? Не, не слышал.
• при наследовании можно получить кровь-кишки-неправильное поведение из-за переопределённых в наследнике методов. Защищаться от этого нужно отдельным костылём — приватным полем с копией метода. Ой, погодите, в Python ведь не может быть приватных полей… • ссылка на текущий объект таскается в явном виде (выступая первым параметром каждого метода). Вкупе с тем фактом, что метод передачи аргумента зависит от его типа (и, следовательно, является неявным — см. #eessi), это просто рвёт мне шаблон — цирк же, ну.

Я, конечно, понимаю, что идеальных вещей быть не может, но не настолько же!

1.  http://docs.python.org/tutorial/classes....

Recommended by:

@shchvova: посмотрите какой чувак: лепит с моего питончика сиплюс плюсочку, буэээ. Еще чуть чуть, и начнет туда Qt лепить, буууээээ

and @komar, @Voker57, @238328
1. shchvova 08.07.2011 21:19

ты обкурился?
Инкапсуляция != ООП. А вообще, юзай себе _ имена. Или __, если тебе хочется

2. komarshchvova /1 08.07.2011 21:19 pavilion

__more___underscores_____means_more____________coolness_______________

3. Minorushchvova /1 08.07.2011 21:20 netbook

Да, инкапсуляция не является неотъемлемым свойством ООП, но чёрт, это настолько удобная фича, что я не представляю себе причин не имплементировать её.

4. shchvova 08.07.2011 21:20

А вообще, для общего образования почитай http://mail.python.org/pipermail/tutor/2...

5. shchvovaMinoru /3 08.07.2011 21:21

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

6. Minorushchvova /4 08.07.2011 21:23 netbook

Интересная философия, конечно — «The Python way is to believe that we are all intelligent programmers and trust us». Возможно, они таки правы,

7. Minorushchvova /5 08.07.2011 21:27 netbook

Если кто-то хочет изменить то, что менять не должен, также вполне вероятно, что он либо глуп, либо очень умён — настолько, что думает в стиле «ну, я сейчас это всё аккуратно поменяю, никто и не заметит». И в итоге всё летит к чертям :) А было бы поле private — то есть вообще без возможности поментяь его извне напрямую, у чувака охота таки пропала бы.
Впрочем, я никогда не писал ООП-код вместе с кем-то, а написанный мной код никто никогда не дописывал и не использовал в своих разработках, так что все мои суждения по поводу полезности private — умозрительны и не подкреплены практикой. Так что я могу быть совершенно не прав :)

8. shchvovaMinoru /7 08.07.2011 21:29 TalkGadget93DEB207

есть идея, что в дизайне проблема, если человек хочет доступится к чему-то, что закрыто. Обычно, используют интерфейсы, что бы делать абстракции — тогда к чему нету интерфейса, то и недоступно... Все вроде просто, не?

9. shchvovaMinoru /7 08.07.2011 21:31 TalkGadget93DEB207

а защищать методы, ИМХО, не наш путь. Хотя, если сильно хочется, можно же их делать приватными и доступаться через жопу. Но, понимаешь, это тупо не питон вей. В любой эдвансед книге, тебе расскажут, что для таких подходов есть С++, или С№... Питон для другого.

10. Minorushchvova /9 08.07.2011 21:38 netbook

Ну вот я пока что cannot into Python way :( Надеюсь, в процессе юзания таки привыкну.

11. Voker57Minoru /10 08.07.2011 21:41 nbl

Суть Python way:

12. 238328Minoru /6 08.07.2011 21:56

.Like Guido says, "we are all adults".

13. shchvova238328 /12 08.07.2011 22:44

++

14. shchvovaVoker57 /11 08.07.2011 22:49

Повеселило.

15. shchvova 08.07.2011 22:52

Ктати, у меня тут есть открытый поржет на пайтоне. ООП во все поля. Немного оверинжинир и запутан, но по своему красив.мож присоеденишся?
Кстате, очень советую книгу "дайв инто пайтон (3)"
Написана в стиле "для программистов" и довольно приятно читается

16. 238328shchvova /15 08.07.2011 22:53 >>>

дваждую про книгу

17. Minorushchvova /15 08.07.2011 22:57 netbook

Спасибо за предложение, но я лучше сначала разберусь с проектом, для которого, собственно, и учу Python.
А чему такому может научить книга, о чём не рассказано в Tutorial? Гуглом я пользоваться умею, новые знания по мере необходимости добуду, ну и PEP'ы о Code Style и Dzen почитать намерен :)

18. shchvovaMinoru /17 08.07.2011 23:04

Хм... Вроде не научит, но лично я ее прочитал за вечер и куда приятнее туторила. Читать/качать там:
http://diveintopython.org/ и http://diveintopython3.org/

19. Minorushchvova /18 08.07.2011 23:07 netbook

Спасибо. Просмотрел содержание: да, в конце идут темы, которых нет в туториале, но они там не особо и нужны — вещи вроде обработки HTML/XML не настолько типичны, чтобы всем обязательно было о них читать. А вот разделы о Unit testing и Test-first development я точно по окончании туториала прочту.

20. 238328Minoru /19 08.07.2011 23:08 >>>

а потом еще всю стандартную библиотеку от корки до корки...

21. shchvovaMinoru /19 08.07.2011 23:09

XML лишним не будет точно

22. shchvova238328 /20 08.07.2011 23:12

Ну, мне лично такой метод не очень — забываю все. А когда с ним работаешь, то как то проще. Да и батареек у питона как то слишком много

23. utros 09.07.2011 06:17 Adium

Да ты ниасилятор, я посмотрю :)
На плюсах кодишь что-ли?

24. Minoruutros /23 09.07.2011 11:25 netbook

На плюсах я пишу только постольку поскольку это требуется в универе. Удовольствия они мне не приносят, а до Smalltalk я ещё не добрался :)

25. utrosMinoru /24 09.07.2011 11:29 Adium

Угадай, как я догадался об этом?

26. Minoruutros /25 09.07.2011 11:38 netbook

Да, я понимаю, что факт моего знакомства с ООП только в контексте C++ довольно очевиден. К чему ты ведёшь? Провоцируешь срачик, или таки хочешь чем-то ценным поделиться?

27. utrosMinoru /26 09.07.2011 11:39 Adium

Намекаю, что ООП в плюсах — ни разу не ОО :)

Do you really want to delete ?