Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class MyObject:#создаем класс
- class_attribute = 8#создаем атрибут класса
- def __init__(self):#создаем пустой конструктор
- self.data_attribute = 42#который будет создавать атрибут данных
- def instance_method(self):#инстанцируем
- print(self.data_attribute)#выводим на экран аттрибут-данные
- @staticmethod#опишем статический метод который будет работать на самом классе и всех его экземплярах
- def static_method():#так как данный метод не привязан к экземпляру объекта - у него нет параметра self который отвечает за передачу ссылки экземпляру - они могут быть вызваны на самом классе, соответственно мы не имеем доступа к атрибутам данных
- print(MyObject.class_attribute)#выводим на экран атрибут класса
- if __name__ == '__main__':#если наш модуль запущен как исполняемый файл
- #MyObject().instance_method - инстанс-метод на классе не сработает - так как он не принимает в себя self
- MyObject().instance_method()#вызовем инстанс-метод на конструкторе класса - видим 42
- MyObject.static_method()#вызовем статический метод на классе - видим 8
- MyObject().static_method()#вызовем статический метод на конструкторе класса - видим 8
- obj = MyObject()#создадим экземпляр данного класса
- obj.instance_method()#вызовем инстанс-метод экземпляра класса - видим 42
- obj.static_method()#вызовем статический метод - видим 8
- #таким образом если вам понадобится создать атрибут класса который является функцией - то вам нужно будет воспользоваться статическим методом
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement