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