Python классы

class Cat():
  name = ""
  weight = ""
  def meow(self):
    print(self.name, " say MEOW!!!!")

cat = Cat()
cat.name = "Bars"
cat.weight = 12
cat.meow()

Конструктор, как только создадим новый класс, выполнится функция

class Dog():
  name=""
  # Конструктор вызывается в момент создания объекта этого типа;
  # специальный метод Python, поэтому два нижних подчеркивания
  def __init__ (self):
    print ("Родилась новая собака!")
# Создаем собаку (объект myDog класса Dog)
myDog = Dog()
class Animal():
  def __init__ (self, new_name):
    print("New animal was born!!!")
    self.name = new_name
  def getName(self):
    print("Name: ", self.name)
  def setName(self, new_name):
    self.name = new_name
  def makeNoice(self):
    print(self.name, " say GRRRR!!!!")

animal = Animal("Red")
animal.getName()
animal.makeNoice()
animal.setName("Bob")
animal.getName()
animal.makeNoice()

Можно создавать не изменяймые объекты

class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

Если оставить только 1 метод getter убрать setter — то атрибут изменить не получится

вызов c.x как экземпляра C выведет значение, еси присвоить значение c.x=»value» будет вызван метод setter и значение x изменится

Наследование классов и методов

class Person():
  name=""
  def __init__ (self):
    print ("Создан человек")

class Employee (Person):
  job_title=""
  def __init__ (self):
    print ("Создан работник")

class Customer(Person):
  email=""
  def __init__ (self):
    Person.__init__ (self) # вызываем конструктор базового класса
    print ("Создан покупатель")

В Employee конструктор базового класса будет перелпределен

В Customer будет вызван конструктор базового класса

Если ничего не указывать то тоже будет вызван конструктор базового класса

Все классы создаются из самого первого класса __object__ , можно создать своё исключение

class UppercaseException(Exception):
  pass
#Вызовем исключение, когда встретим слово в верхнем регистре:
words = ['q', 'r', 'm', 'M']
for word in words:
if word.isupper():
  raise UppercaseException(word

#Output
Traceback (most recent call last):
File "<pyshell#140>", line 3, in <module>
raise UppercaseException(word)
UppercaseException: M

 

Python

Related Articles

0 Comment

Leave a Comment

Ваш адрес email не будет опубликован.