Python 物件導向

2021-10-10 21:44:29 字數 2736 閱讀 3819

python從設計之初就已經是一門物件導向的語言,正因為如此,在python中建立乙個類和物件是很容易的。本章節我們將詳細介紹python的物件導向程式設計。

如果你以前沒有接觸過物件導向的程式語言,那你可能需要先了解一些物件導向語言的一些基本特徵,在頭腦裡頭形成乙個基本的物件導向的概念,這樣有助於你更容易的學習python的物件導向程式設計。

接下來我們先來簡單的了解下物件導向的一些基本特徵。

使用 class 語句來建立乙個新類,class 之後為類的名稱並以冒號結尾:

class classname:

'類的幫助資訊' #類文件字串

class_suite #類體

類的幫助資訊可以通過classname.__doc__檢視。

class_suite 由類成員,方法,資料屬性組成。

以下是乙個簡單的 python 類的例子:

#!/usr/bin/python # -*- coding: utf-8 -*- class employee: '所有員工的基類' empcount = 0 def __init__(self, name, salary): self.name = name self.salary = salary employee.empcount += 1 def displaycount(self): print "total employee %d" % employee.empcount def displayemployee(self): print "name : ", self.name, ", salary: ", self.salary

類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱, 按照慣例它的名稱是 self。

class test: def prt(self): print(self) print(self.__class__) t = test() t.prt()

以上例項執行結果為:

<__main__.test instance at 0x10d066878>

__main__.test

從執行結果可以很明顯的看出,self 代表的是類的例項,代表當前物件的位址,而 self.__class__ 則指向類。

self 不是 python 關鍵字,我們把他換成 runoob 也是可以正常執行的:

class test: def prt(runoob): print(runoob) print(runoob.__class__) t = test() t.prt()

以上例項執行結果為:

<__main__.test instance at 0x10d066878>

__main__.test

例項化類其他程式語言中一般用關鍵字 new,但是在 python 中並沒有這個關鍵字,類的例項化類似函式呼叫方式。

以下使用類的名稱 employee 來例項化,並通過 __init__ 方法接收引數。

"建立 employee 類的第乙個物件"

emp1 = employee("zara", 2000)

"建立 employee 類的第二個物件"

emp2 = employee("manni", 5000)

您可以使用點號 . 來訪問物件的屬性。使用如下類的名稱訪問類變數:

emp1.displayemployee()

emp2.displayemployee()

print "total employee %d" % employee.empcount

完整例項:

#!/usr/bin/python # -*- coding: utf-8 -*- class employee: '所有員工的基類' empcount = 0 def __init__(self, name, salary): self.name = name self.salary = salary employee.empcount += 1 def displaycount(self): print "total employee %d" % employee.empcount def displayemployee(self): print "name : ", self.name, ", salary: ", self.salary "建立 employee 類的第乙個物件" emp1 = employee("zara", 2000) "建立 employee 類的第二個物件" emp2 = employee("manni", 5000) emp1.displayemployee() emp2.displayemployee() print "total employee %d" % employee.empcount

執行以上**輸出結果如下:

name :  zara ,salary:  2000

name : manni ,salary: 5000

total employee 2

你可以新增,刪除,修改類的屬性,如下所示:

emp1.age = 7  # 新增乙個 'age' 屬性

emp1.age = 8 # 修改 'age' 屬性

del emp1.age # 刪除 'age' 屬性

你也可以使用以下函式的方式來訪問屬性:

hasattr(emp1, 'age') # 如果存在 'age' 屬性返回 true。 getattr(emp1, 'age') # 返回 'age' 屬性的值 setattr(emp1, 'age', 8) # 新增屬性 'age' 值為 8 delattr(emp1, 'age') # 刪除屬性 'age'

python物件導向學習 python物件導向學習

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。物件導向三個概念 1.封裝 即把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法讓可信的類進...

python物件導向總結 Python物件導向總結

python 物件導向 oop 1 物件導向 是乙個更大封裝,把乙個物件封裝多個方法 2 類 是對一些具有相同特徵或行為的事物的乙個統稱,是抽象的,不能直接使用 特徵被稱為屬性 行為被稱為方法 3 物件 是由類建立出來的乙個具體的存在,可以直接使用 先有類再有物件,類只有乙個,而物件可以有多個 類中...

python登入物件導向 python 物件導向

一 屬性和方法 1.a a 例項屬性 通過例項物件來新增的屬性就是例項屬性 a.count 10 例項方法都是在類中直接定義的 以self為第乙個引數的方法都是例項方法 當通過例項物件呼叫時,會自動傳遞當前物件作為self傳入 當通過類物件呼叫時,不會自動傳遞self a.test 等價於 a.te...