Advertisement
Dmitry_Dronov

С

Mar 9th, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.28 KB | None | 0 0
  1. class MyObject:#создаем класс
  2.     class_attribute = 8#создаем атрибут класса
  3.  
  4.     def __init__(self):#создаем пустой конструктор
  5.         self.data_attribute = 42#который будет создавать атрибут данных
  6.  
  7.     def instance_method(self):#инстанцируем
  8.         print(self.data_attribute)#выводим на экран аттрибут-данные
  9.  
  10.     @staticmethod#опишем статический метод который будет работать на самом классе и всех его экземплярах
  11.     def static_method():#так как данный метод не привязан к экземпляру объекта - у него нет параметра self который отвечает за передачу ссылки экземпляру - они могут быть вызваны на самом классе, соответственно мы не имеем доступа к атрибутам данных
  12.         print(MyObject.class_attribute)#выводим на экран атрибут класса
  13.  
  14. if __name__ == '__main__':#если наш модуль запущен как исполняемый файл
  15.     #MyObject().instance_method - инстанс-метод на классе не сработает - так как он не принимает в себя self
  16.     MyObject().instance_method()#вызовем инстанс-метод на конструкторе класса - видим 42
  17.     MyObject.static_method()#вызовем статический метод на классе - видим 8
  18.     MyObject().static_method()#вызовем статический метод на конструкторе класса - видим 8
  19.     obj = MyObject()#создадим экземпляр данного класса
  20.     obj.instance_method()#вызовем инстанс-метод экземпляра класса - видим 42
  21.     obj.static_method()#вызовем статический метод - видим 8
  22. #таким образом если вам понадобится создать атрибут класса который является функцией - то вам нужно будет воспользоваться статическим методом
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement