Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
114 / 62 / 9
Регистрация: 26.06.2013
Сообщений: 3,016
1

ООП Python 2.7.x и 3.х

19.08.2020, 20:41. Показов 2455. Ответов 10
Метки нет (Все метки)

Чем отличается ООП в Python в 2.7.x и 3.х?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2020, 20:41
Ответы с готовыми решениями:

Изучаю Python, сейчас учу основы ООП, где можно найти задачи по ООП
Скиньте пожалуйста источники с задачами(желательно на русском)

ООП Python
1. В чем смысл декомпозиции при составлении программ? 2. Опишите преимущества ООП в сравнении с...

Python и ООП
Всем привет. Я Пайтон изучаю параллельно с Java. И многое в Пайтоне остается сложным и...

Python ООП
Пытаюсь изучить объектно-ориентированное программирование. В теории вроде все понятно на простых...

10
2480 / 1793 / 749
Регистрация: 21.03.2016
Сообщений: 4,740
19.08.2020, 20:43 2
ничем. ооп это концепция и от языка и версии не зависит.
1
114 / 62 / 9
Регистрация: 26.06.2013
Сообщений: 3,016
19.08.2020, 20:50  [ТС] 3
А синтаксис?
0
Эксперт Python
4485 / 3270 / 1057
Регистрация: 28.10.2013
Сообщений: 8,406
Записей в блоге: 1
19.08.2020, 21:05 4
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Цитата Сообщение от supmener Посмотреть сообщение
А синтаксис?
https://docs.python.org/2/tutorial/classes.html
VS
https://docs.python.org/3/tutorial/classes.html
0
114 / 62 / 9
Регистрация: 26.06.2013
Сообщений: 3,016
19.08.2020, 21:10  [ТС] 5
не кажутся ли Вам эти справочные материалы несколько урезанными и неполными?
0
Эксперт Python
4485 / 3270 / 1057
Регистрация: 28.10.2013
Сообщений: 8,406
Записей в блоге: 1
19.08.2020, 21:15 6
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Цитата Сообщение от supmener Посмотреть сообщение
не кажутся ли Вам эти справочные материалы несколько урезанными и неполными?
С чего бы это? Классы в Python это нечто очень простое.
Разве что в Python 3.6 или 3.7 добавили еще data классы - чисто для хранения данных, без методов.
1
114 / 62 / 9
Регистрация: 26.06.2013
Сообщений: 3,016
19.08.2020, 21:19  [ТС] 7
Слышал такое, что нельзя оставлять пустые скобки (как в примере надо вписывать туда это слово), чтобы не столкнуться в дальнейшем с проблемами. Считаете ли Вы тоже так?
Python
1
class Primer (object):
0
1315 / 782 / 174
Регистрация: 22.02.2018
Сообщений: 2,218
Записей в блоге: 3
19.08.2020, 21:24 8
Цитата Сообщение от supmener Посмотреть сообщение
Чем отличается ООП в Python в 2.7.x и 3.х?
Если Вам это интересно, то читайте Лутца. Он там по ходу изложения указывает отличия. К примеру в 3.0 появились "классы нового стиля" и теперь при создании класса не нужно указывать суперкласс object
Python
1
2
3
4
5
class A(object):   # в 2.X
    ...
 
class A():         # в 3.X
    ...
Вот кусок из оглавления в книге Лутца:
"Изменения в классах нового стиля 222
Процедура извлечения атрибутов для встроенных операций пропускает экземпляры 224
Изменения модели типов 229
Все классы являются производными от object 232
Изменение ромбовидного наследования 234
Дополнительные сведения о MRO: порядок распознавания методов 238
Пример: отображение атрибутов на источники наследования 241
Расширения в классах нового стиля 246
Слоты: объявления атрибутов 247
Свойства: средства доступа к атрибутам 256
Метод__ getattribute__ и дескрипторы: инструменты для работы с атрибутами 259
Другие изменения и расширения классов 260
Статические методы и методы классов 261
Для чего используются специальные методы? 261
Статические методы в Python 2.Х и З.Х 262
Альтернативы для статических методов 264
Использование статических методов и методов класса 265
Подсчет экземпляров с помощью статических методов 267
Подсчет экземпляров с помощью методов классов 268 "

Если Вам так нужны эти различия, то читайте Лутца.
А Вообще то давно пора перейти на 3.7 , так как уже объявлено, что 2.Х поддерживаться больше не будут.
1
Эксперт Python
4485 / 3270 / 1057
Регистрация: 28.10.2013
Сообщений: 8,406
Записей в блоге: 1
19.08.2020, 21:39 9
Цитата Сообщение от supmener Посмотреть сообщение
Слышал такое, что нельзя оставлять пустые скобки
Если ты пишешь на 3.x Python - тебе это не нужно.
В Python 2.7 будет работать как с object, так и без object.
Разница будет только в этом:
Класс не наследующий object имеет только эти атрибуты:
Код
['__doc__', '__init__', '__module__']
Класс, наследующий object (явно или неявно как в Python 3) имеет вот эти атрибуты:
Код
['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__']
1
Просто Лис
Эксперт Python
4246 / 2656 / 911
Регистрация: 17.05.2012
Сообщений: 7,916
Записей в блоге: 9
20.08.2020, 09:17 10
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Кратко про ООП в питоне-
что есть-
* "конструктор"
* наследование
** множественное наследование (приоритет работает немного по-другому, но можно привыкнуть)
Python
1
2
3
4
5
6
7
8
class A:
    pass
class B(A):
    pass
class C(A):
    pass
class D(B,C):
    pass
* статические методы создаются декоратором
* полиморфизм есть и даже больше (выглядит как утка - значит и есть утка - только все методы реализуй)
* геттеры и сеттеры эмулируются через property

чего нет-
* protected и private полей - последние эмулируются __ в начале имени поля. Другие - _
* нет абстрактных классов/методов - эмулируется бросанием исключения NotImplement
* нет интерфейсов
* невозможно финализировать класс, чтобы от него нельзя было отнаследоваться
* ???
1
Модератор
Эксперт Python
1389 / 870 / 324
Регистрация: 21.02.2017
Сообщений: 2,574
Записей в блоге: 1
20.08.2020, 09:47 11
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
невозможно финализировать класс, чтобы от него нельзя было отнаследоваться
Python
1
2
3
4
class Example:
 
    def __init_subclass__(self, **kwargs):
        raise RuntimeError
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.08.2020, 09:47

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Python ООП
Нужно создать класс, который должен содержать словарь, в качестве ключей которого есть страны, а в...

Применение ООП в Python
напишите класс Полено (Block), который при создании принимает параметры: имя (строка), масса, длина...

Пояснение в ООП Python
Читал статью и не могу разобраться в одном моменте,поясните пожалуйста почему это так работает:...

Python, Основы программирования and ООП
Вообщем изучал я основы программирования соответственно python. Прошел все базовые курсы по...

Чем отличается ООП в Python и Java?
Прошу дать ответ, учитывая, что JAVA не знаю. Мне тяжело дается ООП в Python, поэтому подумываю...

ООП Python не могу правильно вывести
Ребят, выполняю д/з по питону, у меня такая задача: Описать класс ≪поезд≫, содержащий следующие...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.