類,class,用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實(shí)例。

在羅甸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需求定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,羅甸網(wǎng)站建設(shè)費(fèi)用合理。
函數(shù),是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。
函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道python提供了許多內(nèi)建函數(shù),比如print()。但你也可以自己創(chuàng)建函數(shù),這被叫作用戶自定義函數(shù)。
python語言中類和函數(shù)的區(qū)別
1、規(guī)則不同
類是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型;
函數(shù)必須聲明后才可以被調(diào)用,調(diào)用格式為:函數(shù)名(實(shí)參)調(diào)用時函數(shù)名后的小括號中的實(shí)參必須和聲明函數(shù)時的函數(shù)括號中的形參個數(shù)相同。
2、主體不同
類是面向?qū)ο蟪绦蛟O(shè)計實(shí)現(xiàn)信息封裝的基礎(chǔ);
函數(shù)是指一段在一起的、可以做某一件事的子程序。
3、特點(diǎn)不同
類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型,每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或者傳遞消息的函數(shù),類的實(shí)例稱為對象;
函數(shù)分為全局函數(shù)、全局靜態(tài)函數(shù),在類中還可以定義構(gòu)造函數(shù)、析構(gòu)函數(shù)、拷貝構(gòu)造函數(shù)、成員函數(shù)、友元函數(shù)、運(yùn)算符重載函數(shù)、內(nèi)聯(lián)函數(shù)等。
1.類方法用@classmethod:
? ? 用途:一般用來對類屬性進(jìn)行限制性操作
? ? 用法:該方法的調(diào)用者(不管是類調(diào)用還是實(shí)例調(diào)用),會默認(rèn)把該類作為第一個參數(shù)傳進(jìn)來(調(diào)用者不必顯示指定),這樣該方法內(nèi)部可以獲取到該類,從而對類屬性進(jìn)行操作。實(shí)際用途可以用來限制對類屬性的訪問,不管是類調(diào)用還是實(shí)例調(diào)用,能保證修改的都是類屬性。
2.靜態(tài)方法用@staticmethod:
? ? 用途:用來實(shí)現(xiàn)工具性方法
? ? 用法:如果方法內(nèi)部沒有涉及到對實(shí)例屬性的操作,可以把該方法定義為靜態(tài)方法,不管是類調(diào)用還是實(shí)例調(diào)用,都能直接調(diào)用該方法實(shí)現(xiàn)相應(yīng)功能。
3.普通方法:
? ? 用途:實(shí)例調(diào)用的方法
? ? 用法:方法內(nèi)部涉及到對實(shí)例屬性的操作,實(shí)例調(diào)用該方法時會自動默認(rèn)將實(shí)例的引用作為第一個參數(shù)傳進(jìn)去。也可以用類直接訪問,不過這樣訪問時需要手動傳入第一個參數(shù),也就是一個實(shí)例的引用。
附加: @property的使用(從語義規(guī)范上來說,只用于普通方法,也就是對實(shí)例變量進(jìn)行控制,但也可以強(qiáng)行用來對類變量進(jìn)行控制)
對私有變量的控制訪問可以借鑒java的get、set方式。這沒有任何問題。唯一的問題就是不直觀,把對變量的訪問變成了對方法的訪問。而@property的作用就是還原這種直觀的訪問方式,可以像訪問變量一樣訪問@property修飾的方法。注意:如果不想讓別人修改某變量,可以用不寫@XXX.setter方法來實(shí)現(xiàn)。
總結(jié):不管方法是哪一種方法(類方法,靜態(tài)方法,還是普通的實(shí)例方法),都可以用類直接訪問和用實(shí)例進(jìn)行訪問,只是參數(shù)多傳一個多傳一個的問題。更重要的是語義的規(guī)范,語法上沒什么問題。
python的類里用@staticmethod的是靜態(tài)方法,@classmethod的是類方法,如下
class?Person(object):
person_list?=?[]
def?__init__(self,?name,?age):
self.name?=?name
self.age?=?age
self.person_list.append(self)
@classmethod
def?one_year_later(cls):
for?p?in?cls.person_list:
p.age?+=?1
@staticmethod
def?born_one_boby(name):
return?Person(name,?0)
def?__repr__(self):
return?'Person?name:%s,?age:%s'?%?(self.name,?self.age)
if?__name__?==?'__main__':
petter?=??Person('Petter',23)
merry?=?Person('Merry',21)
print(petter)?#?Person?name:Petter,?age:23
print(merry)??#??Person?name:Merry,?age:21
Person.one_year_later()
print(petter)??#??Person?name:Petter,?age:24
print(merry)??#??Person?name:Merry,?age:22
baby?=?merry.born_one_boby('Tom')
print(Person.person_list)?#??[Person?name:Petter,?age:24,?Person?name:Merry,?age:22,?Person?name:Tom,?age:0]
網(wǎng)頁名稱:python類的靜態(tài)函數(shù),python 類 靜態(tài)方法
文章分享:http://chinadenli.net/article8/dsgjjop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、App設(shè)計、用戶體驗(yàn)、關(guān)鍵詞優(yōu)化、網(wǎng)站設(shè)計公司、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)