天天看點

Python:什麼是面向對象的程式設計?

什麼是面向對象的程式設計?

Python:什麼是面向對象的程式設計?

顧名思義,面向對象程式設計是計算機程式設計中的一種技術,它将資料和方法表示為“對象”。它們確定建立整潔和可重用的代碼,以便将程式劃分為獨立的對象或幾個小型程式。

對象有兩個特征:屬性、行為。

舉一個汽車的例子:

Python:什麼是面向對象的程式設計?
  • 汽車的屬性:顔色,制造年份,制造商。
  • 行為/特征:呼噜,刹車,加速。

在python中,面向對象程式設計遵循以下原則:類、對象、方法、繼承、多态性、資料抽象和封裝。

面向對象程式設計原理

1.班級

類就像對象構造函數,或者是通過定義公共屬性和行為來建立對象的“藍圖”。

在Python中,類是使用關鍵字“class”定義的。讓我們定義一個CAR`python類CAR:#class Attributes Color=“Red”Yom=“2015”Model=“Mazda”Pass‘`’‘--祝賀您定義了一個類,但是您将意識到任何程式的最終目标都是一個結果。

不幸的是,定義的類将順利運作,但不會給出結果。我們将在對象中處理這個問題--上面的示例是一個最簡單的類,在實際應用程式中并不真正有用。在實際應用程式中,類需要是動态的。是以,我将引入‘__init_()’函數,它總是在類被初始化時執行(了解更多關于函數的内容)。為了簡化定義,讓我們考慮一隻狗,根據科學分類,它屬于這一物種。

犬狼瘡現在,當你進行科學分類的時候,你會意識到亞種有不同的屬性,比如顔色,體重,身高,用這些資訊來定義一個類别的狗。

`‘python類狗:物種=’Canis lupus‘def_init__(自我、顔色、重量、高度)
:自.色=顔色自我.重量=重量.高度=高度.`’python類汽車:
def_init__(Self_init_(Self,Color,Yom,Model):
Sel.color=color Self.YOM=Yom Self.Model=Model`
‘就像汽車定義的那樣,代碼将運作,但沒有最終結果.為了解決這個問題,請允許我在O.O.P.
對象的下一個概念中引入執行個體化。
           

2.Object

要通路類的屬性,我們需要在類之外建立一個執行個體(事件),我們可以簡單地将一個對象定義為一個類的執行個體。

考慮到汽車的例子,以下面的例子為例:

**Car1;顔色:白色,Yom:2015,型号:豐田

**Car2;顔色:藍色,Yom:2012,型号:Audi

class Car:
    def __init__(self,color,YOM,model):
       self.color = color
       self.YOM = YOM
       self.model = model
Car1 = Car('white','2015','Toyota')       
print ( f'This is a {Car1.color},{Car1.model},manufactured in {Car1.YOM}')
           

結果:

This is a white,Toyota,manufactured in 2015
           

在本例中,Car1是一個對象,通過它我們可以通路Carl類的所有屬性。

Car1 = Car()
           

繼續,嘗試在Car2之外建立一個對象,如上面所述谷歌Colab

3.Method

回顧類的定義,我們提到對象有兩個屬性:屬性和行為。現在,簡單地說,方法是定義對象行為的一種方法。

從汽車的例子來看,我們可以說一輛車有以下行為:它呼嘯,它加速,它刹車

是以,讓我們用它建立一個方法。

class Car:
    def __init__(self,color,YOM,model):
       self.color = color
       self.YOM = YOM
       self.model = model
#method
    def hoot(self):
       return('Pipippipi')
           

要通路該方法,我們必須建立一個執行個體

Car3 = Car('Blue','2018','Mazda')
Car3.hoot()
print(f'The {Car3.color},{Car3.YOM},{Car3.model} is hooting {Car3.hoot()}')
           

結果:

The white,2016,Mazda is hooting Pipippipi
           

加法

方法可分為3類:

-執行個體法

-類方法

-靜态法

我将在下一篇文章中深入研究這些方法及其應用,并保持良好的聯系。

4.Inheritance

在現實生活中,孩子可以部分或完全繼承父母的某些屬性和行為。

現在,程式設計場景中,繼承允許我們定義一個子類,它繼承父類中的所有方法和屬性。

注意:子類可以通過以下方式繼承某些方法和屬性

父類名稱依尼特 ()

功能。此外,它還可以從父類繼承所有方法和屬性,并使用

超級()依尼特 ()

功能。我們将分别在下面的示例中處理這兩個問題。

例1:部分繼承

#Parent Class
class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname
  #method
  def printname(self):
    print(self.firstname, self.lastname)
#child class
class Student(Person):
  def __init__(self, fname, lname):
    Person.__init__(self, fname, lname)
           

示例2:完全繼承

class Person:
  def __init__(self, fname, lname):
    self.firstname = fname
    self.lastname = lname
  #method
  def printname(self):
    print(self.firstname, self.lastname)

class Student(Person):
  def __init__(self, fname, lname):
    super().__init__(fname, lname)
    self.graduationyear = 2019
           

5.Polymorphism

想象一下,您的任務是建立一個計算使用者提供的任意形狀面積的程式。現在,這是引入多态性的完美情況,這意味着不同的形式。

在程式設計世界中,多态性是指同名函數具有完全不同功能的能力。它建立了一個可以使用多種形式的對象的結構。

示例(類方法的多态性)

class whale:
   def swim(self):
        print("The whale is swimming.")

    def swim_backwards(self):
        print("The whale cannot swim backwards, but can sink backwards.")

    def skeleton(self):
        print("The whale's skeleton is made of cartilage.")


class Starfish():
    def swim(self):
        print("The Starfish is swimming.")

    def swim_backwards(self):
        print("The Starfish can swim backwards.")

    def skeleton(self):
        print("The Starfish's skeleton is made of bone.")
waza = whale()
herod = Starfish()

for fish in (waza, herod):
    fish.swim()
    fish.swim_backwards()
    fish.skeleton()
           

産出:

The whale is swimming.
The whale cannot swim backwards, but can sink backwards.
The whale's skeleton is made of cartilage.
The Starfish is swimming.
The Starfish can swim backwards.
The Starfish's skeleton is made of bone.
           

6.資料提取

為便于了解,請考慮您的T.V遙控器,“+”按鈕,它用于增加容量,您可以使用該按鈕,但您無法看到操作是如何進行的。這是一個抽象的完美例子。

在Python中,資料抽象可以定義為隐藏應用程式的所有無關資料/程序,以降低複雜性和提高程式的效率。

如果您曾經使用過Django架構,那麼在建立模型時請考慮:

from django import models

class student(models.Model)
pass
           

這是一個抽象的完美例子。

在以後的文章中,我将進一步讨論抽象方法和類。

7.Encapsulation

封裝是一種面向對象的程式設計概念,它将操作資料的資料和函數綁定在一起,并確定資料不受外部幹擾和濫用。資料封裝導緻了重要的面向對象的資料隐藏概念。

Python:什麼是面向對象的程式設計?

結尾

本篇文章就分享到這裡啦!!往期文章歡迎大家觀看學習!

每篇文章的項目都是可免費擷取的私信小編即可啦。

Python資料分享、粉絲交流解答群!進來看看呀~~                                                      

  點選連結加入群聊【python小白解答交流群】:https://jq.qq.com/?_wv=1027&k=0Rqbyi0m

Python:什麼是面向對象的程式設計?