日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

学学python(4):面向对象及类,模块

發(fā)布時間:2024/4/14 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学学python(4):面向对象及类,模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.?????? 關(guān)于類的一些說明

1.1.__init__是類的構(gòu)造函數(shù),和其他語言中的構(gòu)造函數(shù)功能是一樣的,python類中還有其他的特殊方法,比如析構(gòu)函數(shù)為__del__,在方法名的前后都有雙下劃線。構(gòu)造函數(shù)的返回值是None。

1.2.包括構(gòu)造函數(shù)在內(nèi)的所有方法至少要指定一個參數(shù),該參數(shù)代表要調(diào)用其方法的類的對象,為self,相當(dāng)于C#中的this關(guān)鍵字,如果有多個參數(shù)的話,self為第一個參數(shù)。每個方法都通過self參數(shù)來訪問對象屬性。

下面是一個類定義及創(chuàng)建對象調(diào)用的例子:

class Employe:

??? """It is a class named Employe"""

??? def __init__( self ):

????? self.name = ""????

????? self.age = 0

?

??? def printInfo(self):

??????? print "name is %s,age is %s"%(self.name,self.age)

調(diào)用如下:

from Employe import Employe

?

emp1=Employe()#create object of class Employe

print "some info for emp1"

print "name:",emp1.name

print "age:",emp1.age

print "showInfo:",emp1.printInfo()

?

emp1.name="cary"

emp1.age=27

emp1.printInfo()

結(jié)果如下:

some info for emp1

name:

age: 0

showInfo: name is ,age is 0

None

name is cary,age is 27

?

1.3. 類和類的對象都有一些特殊屬性是python為我們創(chuàng)建好的。包括如下:

print Employe.__bases__

print Employe.__dict__

print Employe.__doc__

print Employe.__module__

print Employe.__name__

?

print emp1.__class__

print emp1.__dict__

print emp1.__module__

print emp1.__doc__

1.4. 文檔字符串是一種說明信息,可以對類和函數(shù)使用,但必須放在類,函數(shù)定義緊挨著的下一行,可以使用print Employe.__doc__來顯示文檔字符串。

1.5. 私有屬性:python在遇到雙下劃線開頭的屬性時會進(jìn)行名字調(diào)整,例:

class Test:

??? def __init__(self):

??????? self.public=""

??????? self.__private=""

?

test1=Test()

print "public:",test1.public

#print "private:",test1.__private

print "private:",test1._Test__private

上面程序中我們直接訪問test1對象的__private時python會提示該屬性不存在,這是因為python對其進(jìn)行了重命名,命名后為Test__private,我們訪問這個名字就可以訪問到該屬性。

?

2.?????? 自定義字符串表示:__str__方法,該方法必須返回字符串,下面是例子:

class Employe:

??? """It is a class named Employe"""

??? def __init__( self ):

????? self.name = ""????

????? self.age = 0

?

??? def __str__(self):

??????? return "name is %s,age is %s"%(self.name,self.age)

?

??? def printInfo(self):

??????? print "name is %s,age is %s"%(self.name,self.age)

?

emp1=Employe()#create object of class Employe

emp1.name="cary"

emp1.age=29

print emp1???

?

當(dāng)我們print 類的實例的時候,會調(diào)用對象的__str__方法

?

3.?????? 運(yùn)算符重載:在使用python中運(yùn)算符的時候都會調(diào)用一個python內(nèi)部的特殊方法,比如使用減號(-)運(yùn)算符的時候會調(diào)用__sub__特殊方法,所以重載減號運(yùn)算符就變成了重寫__sub__方法。其他運(yùn)算符和特殊方法的對應(yīng)可以查閱相關(guān)文檔得到。下面是一個重載加法運(yùn)算符的簡單例子,如下:

class NumTest:

??? def __init__(self,num1):

??????? self.data=num1

??? def __add__(self,num2):

??????? return self.data+num2

???

num=NumTest(9)

result=num + 6

print result

?

4. 模塊是邏輯上組織代碼的方法,文件是物理上組織模塊的方法,因此一個文件被看做是一個獨(dú)立模塊,一個模塊也可以看做是一個文件。

5.警告框架:包括一些警告異常類的集合,Warning直接從Exception繼承,作為所有警告的基類,有UserWarning,DeprecationWarning,SyntaxWarning,RuntimeWarning.

6.模塊內(nèi)建函數(shù)

__import__():作為實際上導(dǎo)入模塊的函數(shù),即import語句調(diào)用__import__函數(shù)完成它的工作,如果有必要時我們可以自定義該函數(shù)。

golbals()和locals():分別返回調(diào)用者全局和局部名稱空間的字典,在一個函數(shù)內(nèi)部局部名稱空間代表在函數(shù)執(zhí)行時候定義的所有名字,locals函數(shù)返回就是包含這些名字的字典,globals返回函數(shù)可以訪問的全局名字的字典。

reload():可以重新導(dǎo)入一個已經(jīng)導(dǎo)入的模塊。

7.包:有層次的文件目錄結(jié)構(gòu)。

?

?

本文轉(zhuǎn)自生魚片博客園博客,原文鏈接:http://www.cnblogs.com/carysun/archive/2010/03/08/python4.html,如需轉(zhuǎn)載請自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的学学python(4):面向对象及类,模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。