Содержание
- 2. Объектно-ориентированное программирование Python проектировался как объектно-ориентированный язык программирования. Построен с учетом следующих принципов (по Алану Кэю,
- 3. Основные понятия Объектно-ориентированная программа – это совокупность взаимодействующих объектов. Над объектами можно производить операции (посылая им
- 4. Создание классов, методов и объектов class ИМЯ КЛАССА (): ПЕРЕМЕННАЯ = ЗНАЧЕНИЕ . . . def
- 5. Создание классов, методов и объектов Пример_1. class Person(): # Создание пустого класса pass Person.money = 150
- 6. Создание классов, методов и объектов Пример_2. # Создание класса class Person(): name = "" money =
- 7. Создание классов, методов и объектов Пример_3. # Создание класса, объекта и вызов метода class Person(): name
- 8. Создание классов, методов и объектов Пример_4. class Critter(): # создание класса """Виртуальный питомец""" # строка документирования
- 9. Применение конструкторов Конструктор класса __init__ автоматически создает атрибуты объекта при вызове класса. Вывод: Появилось на свет
- 10. Применение деструкторов В объектно-ориентированном программировании деструктор вызывается при удалении или уничтожении объекта. Деструктор используется для выполнения
- 11. Применение деструкторов В Python деструктор вызывается не вручную, а полностью автоматически. Это происходит в следующих двух
- 12. Создание деструктора с помощью метода __del__() Магический метод __del__() используется как деструктор в Python. Метод __del__()
- 13. Создание деструктора с помощью метода __del__() class Student: # конструктор def __init__(self, name): print('Inside Constructor') self.name
- 14. Применение атрибутов Усложняем программу: # Демонстрирует создание атрибутов объекта class Critter(): """Виртуальный питомец""" def __init__(self, name):
- 15. # Демонстрирует создание атрибутов объекта (продолжение) # Основная часть crit1 = Critter("Бобик") crit1.talk() crit2 = Critter("Мурзик")
- 16. Применение атрибутов класса и статических методов # Демонстрирует атрибуты класса и статические методы class Critter(): """Виртуальный
- 17. # Демонстрирует атрибуты класса и статические методы (продолжение) # Основная часть print("Значение атрибута класса Critter.total:", end="
- 18. Инкапсуляция объектов. Применение закрытых атрибутов и методов Инкапсуляция — ограничение доступа к составляющим объект компонентам (методам
- 19. Инкапсуляция объектов. Применение закрытых атрибутов и методов class A: def _private(self): print("Это закрытый метод!") >>> a
- 20. Инкапсуляция объектов. Применение закрытых атрибутов и методов class B: def __private(self): print("Это закрытый метод!") >>> b
- 21. Инкапсуляция объектов. Применение закрытых атрибутов и методов # Демонстрирует закрытые переменные и методы class Critter(): """Виртуальный
- 22. Инкапсуляция объектов. Применение закрытых атрибутов и методов # Демонстрирует закрытые переменные и методы (продолжение) # основная
- 23. Управление доступом к атрибутам # Демонстрирует свойства class Critter(): """Виртуальный питомец""" def __init__(self, name): print("Появилось на
- 24. Управление доступом к атрибутам # Демонстрирует свойства (продолжение) @name.setter # метод устанавливает новое def name(self, new_name):
- 25. # Демонстрирует свойства # основная часть crit = Critter("Бобик") crit.talk() print("\nМое животное зовут:", end= " ")
- 26. # Мое животное # Виртуальный питомец, от котором пользователь может заботиться class Critter(): # класс Critter
- 27. # Мое животное (продолжение) # свойство, отражающее самочувствие животного @property def mood(self): unhappiness = self.hunger +
- 28. # Мое животное (продолжение) # метод сообщает о самочувствии животного def talk(self): print("Меня зовут", self.name, end="
- 29. # Мое животное (продолжение) # метод снижает уровень уныния животного def play(self, fun = 4): print("Уиии!")
- 30. # Мое животное (продолжение) # основная часть программы (продолжение) # создание меню choice = None while
- 31. # Мое животное (продолжение) # создание меню (продолжение) # выход if choice == "0": print("До свидания.")
- 32. # Мое животное (продолжение) # создание меню (продолжение) # непонятный ввод else: print("\nИзвините, в меню нет
- 33. Наследование # Расширение класса через наследование class Person: def __init__(self,n): self.name=n def write(self): print(self.name) class Student(Person):
- 34. Полиморфизм class T1: n=10 def total(self,N): self.total = int(self.n) + int(N) class T2: def total(self,s): self.total
- 35. Пример программы «Банк» # Банк # Расширение класса через наследование # Использование методов class Person(): #
- 36. Пример программы «Банк» # Банк (продолжение) class Sotrudnik(Person): # дочерний класс def __init__(self,fio,job_title,): # унаследовал атрибут
- 37. Пример программы «Банк» # Банк (продолжение) class Client(Person): def __init__(self,fio,sum_vklada,sum_kr): Person.__init__(self,fio) self.sum_vklada = sum_vklada self.sum_kr =
- 38. Пример программы «Банк» # Банк (продолжение) def dohod(self,persent=0.03): self.sum_vklada = float(self.sum_vklada*(1+persent)) def dolg(self,persent=0.18,amount=0): self.sum_kr = float(self.sum_kr*(1+persent))
- 39. Пример программы «Банк» # Банк (продолжение) name_s = input("Введите ФИО сотрудника:") job_s = input("Введите должность:") name_c
- 41. Скачать презентацию