python從設計之初就已經是一門物件導向的語言,正因為如此,在python中建立乙個類和物件是很容易的。本章節我們將詳細介紹python的物件導向程式設計。
如果你以前沒有接觸過物件導向的程式語言,那你可能需要先了解一些物件導向語言的一些基本特徵,在頭腦裡頭形成乙個基本的物件導向的概念,這樣有助於你更容易的學習python的物件導向程式設計。
接下來我們先來簡單的了解下物件導向的一些基本特徵。
使用 class 語句來建立乙個新類,class 之後為類的名稱並以冒號結尾:
class
classname
:'類的幫助資訊'
#類文件字串
class_suite #類體
類的幫助資訊可以通過classname.__doc__檢視。
class_suite 由類成員,方法,資料屬性組成。
以下是乙個簡單的 python 類的例子:
class
employee
:'所有員工的基類'
empcount =
0def
__init__
(self, name, salary)
: self.name = name
self.salary = salary
employee.empcount +=
1def
displaycount
(self)
:print
"total employee %d"
% employee.empcount
defdisplayemployee
(self)
:print
"name : "
, self.name,
", salary: "
, self.salary
類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱, 按照慣例它的名稱是 self。
class
test
:def
prt(self)
:print
(self)
print
(self.__class__)
t = test(
)t.prt(
)#result:<__main__.test instance at 0x10d066878>
#__main__.test
class classname[(父類名)]:
– 成員函式及成員變數
_ init _ 建構函式:初始化物件
_ del_ 析構函式:銷毀物件
定義類的成員函式時,必須預設乙個變數代表類定義的物件本身,這個變數的名稱可自行定義,下面的程式使用self變數表示類物件的變數
python中class的定義及使用
#類(class): 用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。
#物件:它是類的例項化。
#方法:類中定義的函式。
#類(class) 由3個部分構成:
'''類的名稱:類名
類的屬性:指物件的特徵(一組資料)
類的方法:允許物件進行操作的方法 (行為/功能)
'''# python 3.x中取消了經典類,預設都是新式類。
# 新式類的語法 -> class 類名(object): pass
# 類物件支援兩種操作:屬性引用 和 例項化。
# 屬性引用的語法:obj.屬性
# 類例項化的語法:obj = 類名()
# 類中方法的呼叫:obj.方法名()
# 下面分析新式類的2種常見形式:
#例1:
#自定義乙個類student
class
student
(object):
defspeak
(self)
:## 哪個物件呼叫了這個方法,self就是那個物件;可以把self理解為乙個形參
print
("%s 說:我今年%s歲"
%(self.name, self.age)
)#類student 例項化乙個物件john
john = student(
)# 給物件新增屬性
john.name =
"約翰"
john.age =
19# 呼叫類中的 speak()方法
john.speak(
)#《約翰 說:我今年19歲
#例2:
class
student
(object):
# 定義構造方法
def__init__
(self, n, a)
:#__init__() 是類的初始化方法;它在類的例項化操作後 會自動呼叫,不需要手動呼叫;
# 設定屬性
self.name = n
self.age = a
# 定義普通方法
defspeak
(self)
:print
("%s 說:我今年%s歲"
%(self.name, self.age)
)#類student 例項化乙個物件john
john = student(
"約翰",19
)# 呼叫類中的 speak()方法
john.speak(
)#>>>約翰 說:我今年19歲
# 在python中使用__開頭 並以__結尾的方法,稱之為魔法方法;
# __init__(self) 是類的初始化方法,也稱構造方法,是一種特殊的魔法方法。
# __init__(self)在例項化後,會自動呼叫,而不用手動呼叫,所以一般把屬性設定在_init__()裡。
# 常用到的魔法方法還有:__str__(self) 、 __del__(self)等。
## __str__(self)
class
student
(object):
# 定義構造方法
def__init__
(self, n, a)
:# 設定屬性
self.name = n
self.age = a
# 輸出乙個字串(追蹤物件屬性資訊變化)
def__str__
(self)
:# __str__(self)不可以新增引數(形參)
return
"名字:%s 年齡:%d"
%(self.name, self.age)
# 例項化乙個物件john
john = student(
"約翰",19
)# 當使用print輸出物件時,只要自己定義了__str__(self)方法,那麼就會列印從在這個方法中return的資料
print
(john)
#>>>名字:約翰 年齡:19
python學習第二十天
1.多繼承 繼承 x是一種y的時候.可以使用繼承關係.is a 乙個類同時繼承多個類 python,c 孫悟空是一種猴子,還是一種神仙 2.經典類的mro 通過數型結構的深度優先遍歷 一條道走到黑 從左往右 3.新式類的mro 重點,難點 c3演算法 先拆分再合併 第一項的頭和後面所有項的尾進行比較...
我的工作周記 第二十周
2011 1.3 2011.1.7 在平靜中迎來了新的一年。2011年1 月6日,我和女友都度過了鬱悶的一天。晚上回到家的時候,女友向我哭訴著她這一天工作中所受的委屈。她說這是她工作以來最難受的一天,很多件鬱悶的事情發生在了一起,好像是上天故意安排的一樣。女友並不知道,她的這一天就像是我 2010 ...
python第二十六天
import time from datetime import datetime defdownload name print time.sleep 3 print download 信條 download 加勒比海盜 download 摔跤吧爸爸 程序預設有乙個執行緒,這個執行緒叫主線程 其他的...