python物件導向之方法

來源:互聯網
上載者:User

標籤:mat   write   gpo   str   coding   enc   成員   面向   utf-8   

類成員:欄位+方法+屬性

 

欄位:普通(執行個體對象,每個對象儲存一次)+靜態(全域變數,只儲存一次,所有方法共用)

方法:普通方法(執行個體方法:self.fun())+類方法(@classmathod)+靜態方法(所有方法分類)

屬性:方法屬性

#1普通方法:(使用較多)

#encoding=utf-8

class Foo:

 

def __init__(self, name):

self.name = name

 

def ord_func(self):

""" 定義普通方法,至少有一個self參數 """

 

# print self.name

print u‘普通方法‘

#2類方法:(不能使用執行個體)

@classmethod

def class_func(cls):

""" 定義類方法,至少有一個cls參數 """

 

print u‘類方法‘

#3靜態方法:(將分類)(不能使用執行個體)

@staticmethod

def static_func():

""" 定義靜態方法 ,無預設參數"""

 

print u‘靜態方法‘

 

# 調用普通方法:執行個體+.+方法

f = Foo("gloryroad")

f.ord_func()

 

# 調用類方法:類+.+方法

Foo.class_func()

 

# 調用靜態方法:

Foo.static_func()

 執行個體:

將兩個檔案操作方法,一個改成類方法,一個改成靜態方法,再加上執行個體方法,讀取檔案全部

 

#coding=utf-8

class rw(object):

#建構函式--構造執行個體的函數,不能被類方法或者靜態方法引用參數

# def __init__(self,mydir):

# self.mydir=mydir

#追加寫檔案*類方法

@classmethod

def w(cls,path,content):

with open(path.decode("utf-8"),"a") as fp:

fp.write(content+"\n")

#讀指定行檔案內容*靜態方法

@staticmethod

def r(path,linenum):

lineno=0

with open(path.decode("utf-8"),"r") as f:

for line in f:

lineno+=1

if linenum==lineno:

return line

return ""

fh=rw("e:\\a.txt")

rw.w("e:\\a.txt","hezyy")

print rw.r("e:\\a.txt",2)

 

三個方法區別:

類方法可以被類對象或執行個體調用,執行個體方法只能被執行個體調用,它

只屬於類的單個執行個體擁有,靜態方法兩者都能調用,它在類和實

例間共用。Python實現了一定的靈活性使得類方法和靜態方法,

都能夠被執行個體和類二者調用。

所以三者主要區別在於參數傳遞上的區別,執行個體方法隱含傳的參

數是類執行個體self,而類方法隱含傳遞的參數是類本身cls,而靜態方

法無隱含參數,主要為了類執行個體也可以直接調用靜態方法

 

 

 

python物件導向之方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.