我對 python 面向對象的理解


一、引言

面向對象的編程---object oriented programming,簡稱:OOP,是一種編程的思想。OOP把對象當成一個程序的基本單元,一個對象包含了數據和操作數據的函數。面向對象的出現極大的提高了編程的效率,使其編程的重用性增高。

python面向對象的重要術語:

  1、多態(polymorphism):一個函數有多種表現形式,調用一個方法有多種形式,但是表現出的方法是不一樣的。

  2、繼承(inheritance)子項繼承父項的某些功能,在程序中表現某種聯系

  3、封裝(encapsulation)把需要重用的函數或者功能封裝,方便其他程序直接調用

  4、類:對具有相同數據或者方法的一組對象的集合

  5、對象:對象是一個類的具體事例

  6、實例化:是一個對象事例話的實現

  7、標識:每個對象的事例都需要一個可以唯一標識這個事例的標記

  8、實例屬性:一個對象就是一組屬性的集合

  9、事例方法:所有存取或者更新對象某個實例一條或者多條屬性函數的集合。

  10、類屬性:屬於一個類中所有對象的屬性,

  11、類方法:

二、python中的類與對象

 1 class Person(object):    
 2     def __init__(self,name):   #————————>初始化函數  3         self.name = name
 4         print "------>create:",name
 5     def say_name(self):
 6         print "my name is %s" %self.name
 7 
 8 p1 = Person("gf1")   # --------->類的實例化  9 p2 = Person("gf2")
10 
11 p1.say_name()
12 p2.say_name()

輸出結果:

1 ------>create: gf1
2 ------>create: gf2
3 my name is gf1
4 my name is gf2

以上程序是類的一個基本寫法,理解如下:

  1、person就是一個類,在這個類中是很多的方法集合。例如類中包含sayname等,還可以按照程序要求靈活添加各種類的方法。

  2、類中self其實就是類的對象,是一個具體的實例。多種的實例通過類中的self表現出來。

  3、程序中的p1、p2是具體的實例,實體。(學名叫:對象。)。一個對象就是一個實體。實體通過調用屬性、方法在類中體現相應的功能。

三、python中的繼承

  繼承就是子類繼承了父類相應的功能和方法。

如下代碼說明了子類繼承父類:

 1 class firsttest:
 2     def __init__(self,name):
 3         self._name = name
 4     def sayfirst(self):
 5         print("hello {0}".format(self._name))
 6 
 7 class secondtest(firsttest):       #子類繼承父類(firsttest)的方法  8     def __init__(self,name):
 9         firsttest.__init__(self,name)
10     def saysecond(self):
11         print("good {0}").format(self._name)
12 
13 s = secondtest("gf1")    #類的具體實例。 14 s.sayfirst()
15 s.saysecond()

 

四、函數和面向對象編程的區別

  相同點:都是把程序進行封裝、方便重復利用,提高效率。

  不同點:函數重點是用於整體調用,一般用於一段不可更改的程序。僅僅是解決代碼重用性的問題。

  而面向對象出來代碼重用性。還包括繼承、多態等。使用上更加靈活。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM