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

    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 - для экземпляра класса. Так как ты в начале пути будешь работать с методами экземпляра класса, да и необходимость создавать методы класса она значительно реже.

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