предисловие
Мы уже изучили основные типы данных, функции и чтение и запись файлов Python. Теперь давайте взглянем на объектно-ориентированное программирование Python. Если вы изучили объектно-ориентированный язык программирования, такой как Java, вы можете сравнить его с Python. Объектно-ориентированный язык покажется вам очень простым.Как скриптовый язык, Python более лаконичен и удобен, чем java в объектно-ориентированном, и имеет гораздо меньше ограничений.
создать объект
Как и в других языках, в Python для объявления класса используется ключевое слово class.В имени класса используется верблюжий регистр, а первая буква — заглавная.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
__init__()
необходим метод, который используется при создании экземпляра объекта
Как показано в приведенном выше коде, в классе Python
__init__()
Важны методы, которые инициализируются для создания экземпляров объектов, чем-то похожих на конструкторы в Java.__init__()
В методе «я» имеет важное значение и должно быть помещено на первое место, что является ссылкой на себя.
Создать экземпляр
Python создает экземпляры объектов следующими методами без использования нового ключевого слова.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
Доступ к свойствам и методам
К атрибутам и методам в Python можно обращаться напрямую.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
print(dog.age)
print(dog.name)
dog.run()
Добавить значения по умолчанию в свойства
Python может устанавливать значения по умолчанию для свойств, поэтому вам не нужно передавать параметры во время инициализации.
class Animal:
def __init__(self, age):
self.name = 'Lily'
self.age = age
def run(self):
print(self.name + " is running")
Изменить значение атрибута
У Pyhton может быть два способа изменить значение свойства, первый — изменить значение свойства через прямой доступ.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
dog = Animal('lily', 2)
dog.name = 'Harry'
dog.age = 3
print(dog.age)
print(dog.name)
dog.run()
Результат показан ниже
Вы также можете изменять значения свойств с помощью методов, аналогичных сеттерам в Java.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
def update_name(self, name):
self.name = name
Dog = Animal('Harry', 2)
Dog.update_name('Lily')
Dog.run()
наследовать родительский класс
В Python также возможно наследование, но вместо использования ключевого слова extends скобки используются напрямую. в
super().__init__(name, age)
Связывает подкласс с суперклассом.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
class Dog(Animal):
def __init__(self, name, age, leg):
super().__init__(name, age)
self.leg = 4
Harry = Dog("Harry", 2, 4)
print(Harry.leg)
Метод переопределения
Метод переопределения в Python относительно прост: если у подкласса есть функция с тем же именем, что и у родительского класса, экземпляр подкласса напрямую вызывает функцию подкласса при вызове функции.
class Animal:
def __init__(self, name, age):
self.name = name
self.age = age
def run(self):
print(self.name + " is running")
def update_name(self, name):
self.name = name
class Dog(Animal):
def __init__(self, name, age, leg):
super().__init__(name, age)
self.leg = 4
def run(self):
print("Dog is running")
Harry = Dog("Harry", 2, 4)
Harry.run()
Наконец
Лайки — это самая большая поддержка Для получения дополнительных статей и информации вы можете подписаться на общедоступный аккаунт WeChat QStack.