LINUX.ORG.RU

как понять ооп?

 , ,


5

2

ковыряю скрипт на пистоне, вроде пара строк, а вообще не втыкаю. класс там, объект, какай-малай, шайтанама. накидайте статеек или книжек, осилить собираюсь в кратчайшие сроки

Перемещено mono из talks

★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

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

(ненавижу бля новый python.org).

Заведи тикет. Анонимус поддержит.

anonymous
()

«ооп нинужна» уже писали?

anonymous
()
Ответ на: комментарий от xsektorx

Это же свои аргументы (все), они указаны в объявлении __new__. То есть:

«cls._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)»

cls — этот синглтон. _instance — «приватная» переменная внутри него. Конкретно эта строка вызывает метод __new__ родителя синглтона (т.е. Object) и передаёт туда все аргументы (те, что задали, когда в коде написали Singleton(тут_аргументы).)

К ООП не имеет особого отношения.

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

кажется, понял, вопрос в целом закрытый. можно сказать, успешно освоил основы ооп. осталось в тонкостях синтаксиса разобраться

xsektorx ★★★
() автор топика

М. Лутца почитай, есть на русском даже.

Пока не начинаются лямбды и прочий трэш, все достаточно просто

one_quaker
()
Ответ на: комментарий от rskeyf

да, я тоже так считаю, однако, переписывать весь скрипт не собираюсь

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

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

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

что насчёт *args и **kwargs

а это уже самый базовый синтаксис.

параметры в функции передаются позиционно и именованно. например print(«hello», «world», file=sys.stderr)

если есть *whatever в декларации, то будет список (или другая какая последовательность, хз) whatever, куда попадут все позиционные параметры, которые явно никуда не попали. **whatever - это словарь с именованными.

при вызове функции аналогично *whatever - подставить позиционные параметры из списка, **whatever - подставить именованные параметры из словаря.

в данном случае у тебя просто все параметры, переданные в __new__ без изменений передаются родительскому.

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

Советую изучать ООП на основе с++, а не python-a

Угу, а щи надо лаптем хлебать?

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

ну, вроде понял. как оказалось, класс с синглтоном мне менять вообще не нужно

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

см АТД.

наследование (особенно не Смалток , а Симула извод) - это настолько частный механизм , что интерфейсы ща вытесняют.

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

см . категории Аристотеля.

то что ща заборостроительных каждого учат ООП , то же самое , что в каждом литературном требовать бестселеров в качестве курсовых.

т.е правильная обьектная декомпозия это реально очень дорогая деятельность.

а вот использование уже готовой декомпозии как некоторого набора АТД - вперёд и с песней.

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

нифига. и жабка и плюсы(при всей крутизне Страустроп решал и решил и решает практическую задачу прикручивания к уже имеющемуся язычку симуло-поведение) т.е время связывание иногда раннее иногда позднее.

правильное ООП это как раз таки Смолток где всё связывание позднее.

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

ну и кста в настоящем ооп нет разницы между однопотоковым исполнителем или обьекты на разных .

т.е обьекты (изначальные) и акторы это очень близко.

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

Для понимания ООП лучше постигать его основы _не_ на примере питона. Java - хороший вариант, можно еще С++, но это сложнее.

Подписываюсь!

Такого не очевидного языка, как питон я раньше не встречал. После Delphi и Ruby синтаксис питона вобще в ступор вводит: какое-то непонятное нагромождение костылей. Чисто эстетически код на питоне не воспринимается.

Хотя у языка много библиотек, он кроссплатформенен и достаточно быстр.

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