Помогите пожалуйста понять ООП в python на данном участке кода:
import cocos
class HelloCocos(cocos.layer.Layer):
def __init__(self):
super().__init__()
label = cocos.text.Label("Hello Cocos", font_name = "Times New Roman", font_size = 32, anchor_x = "center", anchor_y = "center")
label.position = 640, 360
self.add(label)
cocos.director.director.init(width=1280, height=720, caption="CatGame")
hello_layer = HelloCocos()
test_scene = cocos.scene.Scene(hello_layer)
cocos.director.director.run(test_scene)
Я новичок, и до сих пор не понимаю Классы в python. У меня есть несколько вопросов:
- Зачем при создании класса подается
cocos.layer.Layer - Что делает функция
__init__и что значитself - Что значит
super().__init__() - Что значит
self.add(label) - Зачем некоторые программисты пишут if
__name__ == "__main__":?
Ответы (1 шт):
Автор решения: Oidaho
→ Ссылка
По порядку:
- Тут из библиотеки вызывается класс, уже содержащий какие-то атрибуты и функции. В данном случае, класс HelloCocos наследует Layer.
__init__- функция инициализация экземпляра класса. (Не путать с__new__, она создает объект.) Ключевое слово self - указатель на созданный экземпляр. Т.е. для того, чтобы вызвать атрибут\функцию экземпляра, надо обратиться к нему через его указатель (self).super().__init__()- точно такая же инициализация экземпляра класса, но для класса Layer, от которого унаследован класс HelloCocos.self.add(label)- вызывает у текущего экземпляра класса функциюadd(label), которая, вероятнее всего, описана внутри класса Layer.__name__ == "__main__":- хорошая практика и точка входа в программу. В Python она не обязательна. Очень полезна при написании модулей. Код, который будет написан внутри данной конструкции, будет исполняться только в случае, если файл, где описан код, будет запущен напрямую, а не вызван в другом файле.