Найти - Пользователи
Полная версия: Вопрос об ООП Python
Начало » Python для новичков » Вопрос об ООП Python
1 2 3 4 5
Rudium
То, что данные в Python объекты - не делает ваш код объектно-ориентированным. Напротив, на языке С можно писать в ООП стиле. Иначе как бы основной интерпретатор CPython, написанный на С понимал и выполнял код, написанный на Python в ООП стиле?
FishHook
Rudium
+ не является объектом
Разумеется, это МЕТОД объекта. Не согласны?
Вот так в питоне реализуется плюс. Попробуйте это сделать без ООП.
class Foo:
    def __add__(self, other):
        return 1
ayb
более того, import, for, with это шорткаты для вызова соответствующих методов обьекта. но это так, возведение в абсолют конечно.
Rodegast
> + не является объектом

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

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

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

По этому можно сказать что для интепритатора любая программа объектно-ориентированная.
Rudium
С точки зрения интерпретатора любая программа мультипарадигменная с использованием объектов в качестве данных.
Rudium
FishHook
Разумеется на C можно это реализовать. Иначе бы интерпретатор CPython не смог выполнить этот код. Настоящие классы и настоящее ООП реализует Cи, читая обычный текст на языке Python.
Rudium
Даже первые компиляторы C++ состояли из препроцессора, переводившего ООП код в C-код и компилятора C
Rudium
Другое дело что писать каждодневно на С в ООП стиле - извращение.
Rodegast
> С точки зрения интерпретатора любая программа мультипарадигменная с использованием объектов в качестве данных.

Обоснуй.
FishHook
Rudium
В конечном итоге всё превращается в машинный код. Даже программа на Си. Даже программа на ассемблере.
Представьте себе, все парадигмы и мультипарадигмы вырождаются в машинный язык.
И что дальше?
Я понять не могу, что вы доказать то хотите? Что на пионе вполне можно писать программы не зная ООП? Да нафиг такие программисты никому не нужны. Это тупость.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB