Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 9, 2016 09:51:59

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

То, что данные в Python объекты - не делает ваш код объектно-ориентированным. Напротив, на языке С можно писать в ООП стиле. Иначе как бы основной интерпретатор CPython, написанный на С понимал и выполнял код, написанный на Python в ООП стиле?

Офлайн

#2 Фев. 9, 2016 09:53:27

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

Вопрос об ООП Python

Rudium
+ не является объектом
Разумеется, это МЕТОД объекта. Не согласны?
Вот так в питоне реализуется плюс. Попробуйте это сделать без ООП.
class Foo:
    def __add__(self, other):
        return 1



Офлайн

#3 Фев. 9, 2016 10:00:56

ayb
Зарегистрирован: 2014-04-01
Сообщения: 297
Репутация: +  24  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

более того, import, for, with это шорткаты для вызова соответствующих методов обьекта. но это так, возведение в абсолют конечно.

Офлайн

#4 Фев. 9, 2016 10:35:48

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

> + не является объектом

Совершенно верно. Но только потому что с точки зрения интерпритатора никакого “+” нет, а есть метод __add__ . Например “1” + “1” интерпритатор преобразует в “1”.__add__(“1”) и это выражние полностью соответствует твоим требованиям:
> 2) каждый объект является экземпляром определенного класса;
“1” это экземпляр класса str

>>> type("1")
<type 'str'>

> 3) классы образуют иерархии.
Иерархия прослеживается:
>>> str.__mro__
(<type 'str'>, <type 'basestring'>, <type 'object'>)

> 1) объектно-ориентированное программирование использует в качестве основных логических конструктивных элементов объекты, а не алгоритмы;
Все действия производятся над объектами, причём алгоритм конкатенации находится ни где-то снаружи, а в нутри объекта.

По этому можно сказать что для интепритатора любая программа объектно-ориентированная.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#5 Фев. 9, 2016 10:49:29

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

С точки зрения интерпретатора любая программа мультипарадигменная с использованием объектов в качестве данных.

Офлайн

#6 Фев. 9, 2016 11:03:57

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

FishHook
Разумеется на C можно это реализовать. Иначе бы интерпретатор CPython не смог выполнить этот код. Настоящие классы и настоящее ООП реализует Cи, читая обычный текст на языке Python.

Офлайн

#7 Фев. 9, 2016 11:09:55

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

Даже первые компиляторы C++ состояли из препроцессора, переводившего ООП код в C-код и компилятора C

Офлайн

#8 Фев. 9, 2016 11:11:32

Rudium
Зарегистрирован: 2015-12-06
Сообщения: 114
Репутация: +  1  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

Другое дело что писать каждодневно на С в ООП стиле - извращение.

Офлайн

#9 Фев. 9, 2016 11:14:21

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2849
Репутация: +  186  -
Профиль   Отправить e-mail  

Вопрос об ООП Python

> С точки зрения интерпретатора любая программа мультипарадигменная с использованием объектов в качестве данных.

Обоснуй.



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#10 Фев. 9, 2016 11:15:27

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

Вопрос об ООП Python

Rudium
В конечном итоге всё превращается в машинный код. Даже программа на Си. Даже программа на ассемблере.
Представьте себе, все парадигмы и мультипарадигмы вырождаются в машинный язык.
И что дальше?
Я понять не могу, что вы доказать то хотите? Что на пионе вполне можно писать программы не зная ООП? Да нафиг такие программисты никому не нужны. Это тупость.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version