Page 42 - 6734
P. 42

a=0 # атрибут класу
               def f(self, x): # метод екземпляра
                   return self.a+x
               @staticmethod # декоратор
               def f2(x): # статичний метод
                   return 1+x
               @classmethod # декоратор
               def f3(cls, x): # метод класу
                   return cls.a+x
           obj=A() # створити об'єкт (екземпляр)
           obj.a=2 # атрибут екземпляра (не класу!)
           print obj.f(1) # виклик методу екземпляра
           print A.f(obj, 1) # або
           print A.f2(1) # виклик статичного методу
           print A.f3(1) # виклик методу класу

           3
           3
           2
           1
                                     Властивості

               Властивість  –  це  атрибут,  який  володіє  методами  читання,
           запису і знищення значення [19]. Під час присвоювання властивості
           значення викликається метод запису, а під час отримання значення
           властивості  –  метод  читання.  Властивості  можна  створювати  в
           класах,  які  успадковані  від  object,  за  допомогою  функції
           property або за допомогою декоратора @property.

           class A(object): # клас A успадкований від object
               __x=0 # приватний атрибут __x
               def getx(self): return self.__x # метод читання
               def setx(self, x): # метод запису
                   if x>0: # якщо x>0
                        self.__x = x # присвоїти x

                                          41
   37   38   39   40   41   42   43   44   45   46   47