我在偷偷學Python的第二十三天(物件導向)

2021-10-12 01:12:13 字數 3502 閱讀 2132

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 摔跤吧爸爸 程序預設有乙個執行緒,這個執行緒叫主線程 其他的...