Skilltrik
@Skilltrik
полный новичек

Правильно ли я понимаю устройство классов в python?

1) Насчет ооп, это еще одна особенность языка связанная с классами, ибо они полностью подчиняются ооп?
2) Содержимое класса, т.е его экземпляр, представляет собой набор объектов, под объектами понимаются атрибуты и методы, или все же какие-то промежутки кода?
3) При создания класса автоматически создается метод _init_, это что-то типо автоматического названия метода, если не дать иное, да?
4) Хоть нижняя черточка и делает атрибут приватным, но не в этом случае, пока не знаю всех нюансов, это потому, что это метод и его нельзя сделать приватным?
5) Зачем использовать self? Почему нельзя просто написать там название атрибута или если на то пошло название метода.название атрибута или название класса.название аттрибута, какие тут правила?
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
Maksim_64
@Maksim_64
Data Analyst
Нет у тебя абсолютно не правильное представление по все пунктам. Написание хорошего ответа на каждый вопрос потребует дней, при том что на все эти темы можно разговаривать на совершенно разных уровнях. Если хоть как-то в двух словах.
1. OOP одна из парадигм в программировании в том числе поддерживаемая python.

2. Объект это python абстракция для данных, все данные в python представлены в виде объектов или взаимоотношений между объектами. Отсюда и выражение все в python является объектом.

3. В python каждый класс не явно наследуется от object класс. Да даже если мы не переопределим явно __init__ то он там есть. Например
class MyClass:
    pass
my_instance = MyClass()
print(dir(my_instance))
Там будет в том числе __init__ хотя мы его явно не определяли. __init__ это конструктор класса там могут быть заданы атрибуты которые будут в области видимости экземпляра класса, с которыми будут оперировать методы экземпляра класса, он выполнится при создании экземпляра класса.

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

5. В зависимости от того является ли определенный метод методом класса или методом экземпляра класса, то первый позиционный параметр метода это класс или экземпляр класса. Между программистами python их принято называть cls - для класса, self - для экземпляра класса. Так как ты в начале пути будешь работать с методами экземпляра класса, да и необходимость создавать методы класса она значительно реже.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы