Еще один вопрос о том, для чего "я", что произойдет, если вы не используете "я" и что "cls" для. Я "сделал свою домашнюю работу", я просто хочу убедиться, что у меня все получилось.
self - Чтобы получить доступ к атрибуту объекта, вам необходимо префикс имени атрибута с именем объекта (objname.attributename). Точно так же self используется для доступа к атрибуту внутри самого объекта (класса). Поэтому, если вы не префикс переменной с self в методе класса, вы не сможете получить доступ к этой переменной в других методах класса или вне класса. Поэтому вы можете опустить это, если хотите сделать переменную локальной только для этого метода. Точно так же, если у вас есть метод, и у вас не было переменной, которую вы хотели бы поделиться с другими методами, вы можете опустить self из аргументов метода.
cls - Каждый экземпляр создает свою собственную "копию" атрибутов, поэтому, если вы хотите, чтобы все экземпляры класса имели одну и ту же переменную, вы должны префикс этого имени переменной "cls" в классе декларация.
Все ли в порядке? Спасибо.