類的成員可以分為三大類:字段、方法和屬性
注:所有成員中,只有普通欄位的內容儲存物件中,即:根據此類建立了多少物件,在記憶體中就有多少個普通字段。而其他的成員,則都是儲存在類中,即:無論物件的多少,在記憶體中只建立乙份。
一、字段
字段包括:普通欄位和靜態字段,他們在定義和使用中有所區別,而
最本質的區別是記憶體中儲存的位置不同
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...