Python高階篇 python之函式的類的方法

2021-08-16 20:28:01 字數 1571 閱讀 4842

類的成員可以分為三大類:字段、方法和屬性

注:所有成員中,只有普通欄位的內容儲存物件中,即:根據此類建立了多少物件,在記憶體中就有多少個普通字段。而其他的成員,則都是儲存在類中,即:無論物件的多少,在記憶體中只建立乙份。

一、字段

字段包括:普通欄位和靜態字段,他們在定義和使用中有所區別,而

最本質的區別是記憶體中儲存的位置不同

class province:

# 靜態字段

country = '中國'

def __init__(self, name):

# 普通字段

self.name = name

# 直接訪問普通字段

obj = province('河北省')

print obj.name

# 直接訪問靜態字段

province.country

由上述**可以看出

【普通字段需要通過物件來訪問】【靜態字段通過類訪問】

,在使用上可以看出普通欄位和靜態欄位的歸屬是不同的。其在內容的儲存方式類似如下圖:

由上圖可是:

應用場景: 通過類建立物件時,如果每個物件都具有相同的字段,那麼就使用靜態字段

二、方法

方法包括:普通方法、靜態方法和類方法,三種方法在記憶體中都歸屬於類,區別在於呼叫方式不同。

class foo:

def __init__(self, name):

self.name = name

def ord_func(self):

""" 定義普通方法,至少有乙個self引數 """

# print self.name

print '普通方法'

@classmethod

def class_func(cls):

""" 定義類方法,至少有乙個cls引數 """

print '類方法'

@staticmethod

def static_func():

""" 定義靜態方法 ,無缺省引數"""

print '靜態方法'

# 呼叫普通方法

f = foo()

f.ord_func()

# 呼叫類方法

foo.class_func()

# 呼叫靜態方法

相同點:對於所有的方法而言,均屬於類(非物件)中,所以,在記憶體中也只儲存乙份。

不同點:方法呼叫者不同、呼叫方法時自動傳入的引數不同。

【完】

python練習 高階篇)

1 求1 2 3 4 5 99的和 count 1 s1 0 s2 0 while count 100 if count 2 0 s1 count else s2 count count 1 s s1 s2 print s 2 用python編寫程式,輸入一年份,判斷該年份是否是閏年並輸出結果 注 ...

Python高階篇 傳送郵件

1 首先,需要先引入yagmail模組 import yagmail 2 連線傳送郵箱 username 123456 qq.com 傳送郵件的郵箱 passwd 123456abc 傳送郵箱的郵箱授權碼 以qq郵箱為例,郵箱的授權碼在如圖所示位置 若連線的郵箱為qq郵箱,則需要加上smtp ssl...

Python高階篇之 Numpy

最近一直在學習python,numpy是乙個非常使用的庫。最近在研究。學習必去的地方numpy官網 中文快速入門 現在還處於初級階段,彙總一下遇到的問題。reshape的第二個引數。new shape int or tuple of ints the new shape should be comp...