„Python“ objektinis programavimas

Šioje pamokoje pavyzdžių pagalba sužinosite apie „Python“ į objektą orientuotą programavimą (OOP) ir jo pagrindinę koncepciją.

Vaizdo įrašas: Objektinis programavimas „Python“

Objektinis programavimas

„Python“ yra kelių paradigmų programavimo kalba. Tai palaiko skirtingus programavimo metodus.

Vienas iš populiariausių būdų išspręsti programavimo problemą yra objektų kūrimas. Tai vadinama „Object-Oriented Programming“ (OOP).

Objektas turi dvi savybes:

  • atributus
  • elgesys

Paimkime pavyzdį:

Papūga gali būti objektas, nes jis turi šias savybes:

  • vardas, amžius, spalva kaip atributai
  • dainavimas, šokiai kaip elgesys

OOP „Python“ koncepcija orientuota į daugkartinio naudojimo kodo sukūrimą. Ši sąvoka taip pat žinoma kaip DRY (Never Repeat Yourself).

„Python“ OOP sąvoka atitinka keletą pagrindinių principų:

Klasė

Klasė yra objekto projektas.

Klasę galime laikyti papūgos su etiketėmis eskizu. Jame yra visa išsami informacija apie pavadinimą, spalvas, dydį ir pan. Remdamiesi šiais aprašais, galime ištirti papūgą. Čia papūga yra objektas.

Papūgos klasės pavyzdys gali būti:

 klasė Papūga: praeiti

Čia mes naudojame classraktinį žodį apibrėždami tuščią klasę „Papūga“. Iš klasės mes konstruojame egzempliorius. Egzempliorius yra konkretus objektas, sukurtas iš tam tikros klasės.

Objektas

Objektas (egzempliorius) yra klasės egzempliorius. Kai klasė apibrėžta, apibrėžiamas tik objekto aprašymas. Todėl jokia atmintis ar saugykla neskiriama.

Papūgų klasės objekto pavyzdys gali būti:

 obj = Papūga ()

Čia obj yra klasės objektas Parrot.

Tarkime, kad turime išsamios informacijos apie papūgas. Dabar mes parodysime, kaip sukurti papūgų klasę ir objektus.

1 pavyzdys: klasės ir objekto kūrimas „Python“

 class Parrot: # class attribute species = "bird" # instance attribute def __init__(self, name, age): self.name = name self.age = age # instantiate the Parrot class blu = Parrot("Blu", 10) woo = Parrot("Woo", 15) # access the class attributes print("Blu is a ()".format(blu.__class__.species)) print("Woo is also a ()".format(woo.__class__.species)) # access the instance attributes print("() is () years old".format( blu.name, blu.age)) print("() is () years old".format( woo.name, woo.age))

Rezultatas

 Blu yra paukštis Woo taip pat yra paukštis Blu yra 10 metų Woo yra 15 metų

Pirmiau pateiktoje programoje mes sukūrėme klasę pavadinimu „Papūga“. Tada mes apibrėžiame atributus. Atributai yra objekto charakteristika.

Šie požymiai yra apibrėžti __init__klasės metodo viduje . Tai yra inicializavimo metodas, kuris pirmą kartą paleidžiamas vos sukūrus objektą.

Tada mes kuriame Papūgos klasės egzempliorius. Čia „blu“ ir „woo“ yra nuorodos (vertė) į mūsų naujus objektus.

Mes galime pasiekti klasės atributą naudodami __class__.species. Klasės atributai yra vienodi visiems klasės egzemplioriams. Panašiai mes pasiekiame egzempliorių atributus naudodami blu.nameir blu.age. Tačiau egzempliorių atributai kiekvienam klasės egzemplioriui yra skirtingi.

Norėdami sužinoti daugiau apie klases ir objektus, eikite į „Python“ klasės ir objektai

Metodai

Metodai yra funkcijos, apibrėžtos klasės kūne. Jie naudojami objekto elgesiui apibrėžti.

2 pavyzdys: metodų kūrimas „Python“

 class Parrot: # instance attributes def __init__(self, name, age): self.name = name self.age = age # instance method def sing(self, song): return "() sings ()".format(self.name, song) def dance(self): return "() is now dancing".format(self.name) # instantiate the object blu = Parrot("Blu", 10) # call our instance methods print(blu.sing("'Happy'")) print(blu.dance())

Rezultatas

 „Blu“ dainuoja „Happy“. „Blu“ dabar šoka

Pirmiau pateiktoje programoje mes apibrėžiame du metodus, ty sing()ir dance(). Tai vadinama egzempliorių metodais, nes jie iškviečiami egzemplioriaus objekte, t blu.

Paveldėjimas

Inheritance is a way of creating a new class for using details of an existing class without modifying it. The newly formed class is a derived class (or child class). Similarly, the existing class is a base class (or parent class).

Example 3: Use of Inheritance in Python

 # parent class class Bird: def __init__(self): print("Bird is ready") def whoisThis(self): print("Bird") def swim(self): print("Swim faster") # child class class Penguin(Bird): def __init__(self): # call super() function super().__init__() print("Penguin is ready") def whoisThis(self): print("Penguin") def run(self): print("Run faster") peggy = Penguin() peggy.whoisThis() peggy.swim() peggy.run()

Output

 Bird is ready Penguin is ready Penguin Swim faster Run faster

In the above program, we created two classes i.e. Bird (parent class) and Penguin (child class). The child class inherits the functions of parent class. We can see this from the swim() method.

Again, the child class modified the behavior of the parent class. We can see this from the whoisThis() method. Furthermore, we extend the functions of the parent class, by creating a new run() method.

Additionally, we use the super() function inside the __init__() method. This allows us to run the __init__() method of the parent class inside the child class.

Encapsulation

Using OOP in Python, we can restrict access to methods and variables. This prevents data from direct modification which is called encapsulation. In Python, we denote private attributes using underscore as the prefix i.e single _ or double __.

Example 4: Data Encapsulation in Python

 class Computer: def __init__(self): self.__maxprice = 900 def sell(self): print("Selling Price: ()".format(self.__maxprice)) def setMaxPrice(self, price): self.__maxprice = price c = Computer() c.sell() # change the price c.__maxprice = 1000 c.sell() # using setter function c.setMaxPrice(1000) c.sell()

Output

 Selling Price: 900 Selling Price: 900 Selling Price: 1000

In the above program, we defined a Computer class.

We used __init__() method to store the maximum selling price of Computer. We tried to modify the price. However, we can't change it because Python treats the __maxprice as private attributes.

As shown, to change the value, we have to use a setter function i.e setMaxPrice() which takes price as a parameter.

Polymorphism

Polymorphism is an ability (in OOP) to use a common interface for multiple forms (data types).

Suppose, we need to color a shape, there are multiple shape options (rectangle, square, circle). However we could use the same method to color any shape. This concept is called Polymorphism.

Example 5: Using Polymorphism in Python

 class Parrot: def fly(self): print("Parrot can fly") def swim(self): print("Parrot can't swim") class Penguin: def fly(self): print("Penguin can't fly") def swim(self): print("Penguin can swim") # common interface def flying_test(bird): bird.fly() #instantiate objects blu = Parrot() peggy = Penguin() # passing the object flying_test(blu) flying_test(peggy)

Output

 Parrot can fly Penguin can't fly

In the above program, we defined two classes Parrot and Penguin. Each of them have a common fly() method. However, their functions are different.

Norėdami naudoti polimorfizmą, mes sukūrėme bendrą sąsają, ty flying_test()funkciją, kuri ima bet kurį objektą ir iškviečia objekto fly()metodą. Taigi, kai praleidome funkcijoje esančius „blu“ ir „peggy“ objektus flying_test(), ji veikė efektyviai.

Pagrindiniai dalykai, kuriuos reikia atsiminti:

  • Objektinis programavimas leidžia programą lengvai suprasti ir efektyvią.
  • Kadangi klasė yra bendrinama, kodą galima naudoti dar kartą.
  • Duomenys yra saugūs ir saugūs naudojant duomenis.
  • Polimorfizmas leidžia tą pačią sąsają skirtingiems objektams, todėl programuotojai gali parašyti efektyvų kodą.

Įdomios straipsniai...