ООП в Python
ООП в Python - это подход к программированию, который фокусируется на использовании объектов и классов так же, как и в других общих языках программирования. Объектами могут быть любые объекты реального мира. Python позволяет разработчикам разрабатывать приложения с использованием подхода ООП с упором на возможность повторного использования кода. Создавать классы и объекты в Python очень просто.
Что такое класс?
Класс в Python - это логическая группа данных и функций. Это дает свободу создавать структуры данных, которые содержат произвольный контент и, следовательно, легко доступны.
Например, любой банковский служащий, который хочет получить данные о клиенте в Интернете, перейдет в класс клиента , где будут перечислены все его атрибуты, такие как сведения о транзакции, сведения о снятии и депозите, непогашенный долг и т. Д.
В этом уроке мы узнаем,
- Как определять классы Python
- Как работает наследование
- Конструкторы Python
Как определять классы Python
Чтобы определить класс, вам необходимо учитывать следующие моменты
Шаг 1. В Python классы определяются ключевым словом "Class".
class myClass():
Шаг 2) Внутри классов вы можете определять функции или методы, которые являются частью этого класса.
def method1 (self):print "Guru99"def method2 (self,someString):print "Software Testing: + someString
- Здесь мы определили method1, который печатает «Guru99».
- Другой метод, который мы определили, - это method2, который печатает «Software Testing» + SomeString. SomeString - это переменная, предоставляемая вызывающим методом
Шаг 3) Все в классе имеет отступ, точно так же, как код в функции, цикле, операторе if и т. Д. Все, что не имеет отступа, не входит в класс.
ПРИМЕЧАНИЕ . Об использовании "self" в Python
- Само-аргумент относится к самому объекту. Отсюда и использование слова «я». Таким образом, внутри этого метода self будет ссылаться на конкретный экземпляр этого объекта, над которым выполняется операция.
- Self - это имя, предпочитаемое Pythons по соглашению для обозначения первого параметра методов экземпляра в Python. Это часть синтаксиса Python для доступа к членам объектов.
Шаг 4) Сделать объект класса
c = myClass()
Шаг 5) Чтобы вызвать метод в классе
c.method1()c.method2(" Testing is fun")
- Обратите внимание, что когда мы вызываем method1 или method2, нам не нужно указывать ключевое слово self. Это автоматически обрабатывается для нас средой выполнения Python.
- Среда выполнения Python будет передавать значение "self", когда вы вызываете метод экземпляра в экземпляре, независимо от того, преднамеренно вы его предоставляете или нет.
- Вам просто нужно заботиться о аргументах, не относящихся к самому себе
Шаг 6) Вот полный код
# Пример файла для работы с классамикласс myClass ():def method1 (self):print ("Guru99")def method2 (self, someString):print ("Тестирование программного обеспечения: + someString)def main ():# упражняемся в методах классаc = myClass ()c.method1 ()c.method2 («Тестировать - это весело»)если __name __ == "__main__":главный()
Как работает наследование
Наследование - это функция, используемая в объектно-ориентированном программировании; он относится к определению нового класса с меньшими изменениями или без изменений существующего класса. Новый класс называется производным классом, а класс, который он наследует, называется базовым . Python поддерживает наследование; он также поддерживает множественное наследование . Класс может наследовать атрибуты и методы поведения от другого класса, называемого подклассом или классом-наследником.
Синтаксис наследования Python
class DerivedClass(BaseClass):body_of_derived_class
Шаг 1) Запустите следующий код
# Пример файла для работы с классамикласс myClass ():def method1 (self):print ("Guru99")класс childClass (myClass):#def method1 (self):# myClass.method1 (сам);#print ("childClass Method1")def method2 (сам):print ("метод childClass2")def main ():# упражняемся в методах классаc2 = childClass ()c2.method1 ()# c2.method2 ()если __name __ == "__main__":главный()
Обратите внимание, что метод method1 в childClass не определен, но является производным от родительского класса myClass. Результатом будет «Guru99».
Шаг 2) Раскомментируйте строки № 8 и 10. Запустите код.
Теперь метод 1 определен в childClass, и вывод «childClass Method1» отображается правильно.
Шаг 3) Раскомментируйте строку №9. Запустите код
Вы можете вызвать метод родительского класса, используя синтаксис
ParentClassName.MethodName(self)
В нашем случае мы вызываем myClass.method1 (self) и Guru99 печатается, как ожидалось.
Шаг 4 ) Раскомментируйте строку №19. Запустите код.
Вызывается метод 2 дочернего класса и печатается «childClass method2», как ожидалось.
Конструкторы Python
Конструктор - это функция класса, которая создает экземпляр объекта для предопределенных значений.
Он начинается с двойного подчеркивания (_). Это метод __init __ ()
В приведенном ниже примере мы берем имя пользователя, использующего конструктор.
class User:name = ""def __init__(self, name):self.name = namedef sayHello(self):print("Welcome to Guru99, " + self.name)User1 = User("Alex")User1.sayHello()
Результат будет:
Добро пожаловать в Guru99, Алекс
Пример Python 2
Приведенные выше коды являются примерами Python 3. Если вы хотите работать на Python 2, рассмотрите следующий код.
# How to define Python classes# Example file for working with classesclass myClass():def method1(self):print "Guru99"def method2(self,someString):print "Software Testing: + someStringdef main():# exercise the class methodsc = myClass ()c.method1()c.method2(" Testing is fun")if __name__== "__main__":main()#How Inheritance works# Example file for working with classesclass myClass():def method1(self):print "Guru99"class childClass(myClass):#def method1(self):#myClass.method1(self);#print "childClass Method1"def method2(self):print "childClass method2"def main():# exercise the class methodsc2 = childClass()c2.method1()#c2.method2()if __name__== "__main__":main()
Резюме:
«Класс» - это логическая группа функций и данных. Класс Python предоставляет все стандартные функции объектно-ориентированного программирования.
- Механизм наследования классов
- Производный класс, который переопределяет любой метод своего базового класса.
- Метод может вызывать метод базового класса с тем же именем
- Классы Python определяется ключевыми словами «класс» сам по себе
- Внутри классов вы можете определять функции или методы, которые являются частью класса.
- Все элементы класса имеют отступ, как и код функции, цикла, оператора if и т. Д.
- Аргумент self в Python относится к самому объекту. Self - это имя, предпочитаемое по соглашению Pythons для обозначения первого параметра методов экземпляра в Python.
- Среда выполнения Python будет передавать значение "self" автоматически, когда вы вызываете метод экземпляра в экземпляре, независимо от того, преднамеренно вы его или нет.
- В Python класс может наследовать атрибуты и методы поведения от другого класса, называемого подклассом или классом-наследником.