国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python類的基礎入門知識

2020-02-23 04:41:00
字體:
來源:轉載
供稿:網友
代碼如下:
class Account(object):
"一個簡單的類"
account_type="Basic"
def __init__(self,name,balance):
"初始化一個新的Account實例"
self.name=name
self.balance=balance
def deposit(self,amt):
"存款"
self.balance=self.balance+amt
def withdraw(self,amt):
"取款"
self.balance=self.balance-amt
def inquiry(self):
"返回當前余額"
return self.balance

其中,__init__函數就是Python中的構造函數。另外,balance這個變量是類實例的變量。
另外,在python中類中定義成員函數一般第一個參數總是self,表示自已的實例,與C++中的this指針差不多,不過C++中的this指針是隱函于其中并全局可見的,而在Python中卻要作為參數傳進去, 這是Python中定義類的另一個特點。
還有一個特點,在類的成員函數中,使用類中的另一個成員函數,前面必須要指定類名,如下:
代碼如下:
class Foo(object):
def bar(self):
print "bar!"
def spam(self):
bar(self) # 錯誤,引發NameError, 可以是:self.bar
Foo.bar(self) # 合法的

2.在類中聲時靜態方法并使用靜態方法
要在類中使用靜態方法,需在類成員函數前面加上@staticmethod標記符,以表示下面的成員函數是靜態函數。使用靜態方法的好處是,不需要定義實例即可使用這個方法:另外,多個實例共享此靜態方法,如下: 
代碼如下:
class SimClass():
@staticmethod
def ShareStr():
print "This is a static Method"
SimClass.ShareStr() #使用靜態函數

3.類方法:
類方法與普通的成員函數和靜態函數有不同之處,在接觸的語言中好像也沒見過這種語義,看它的定義:
一個類方法就可以通過類或它的實例來調用的方法, 不管你是用類來調用這個方法還是類實例調用這個方法,該方法的第一個參數總是定義該方法的類對象。
記住:方法的第一個參數都是類對象而不是實例對象.
按照慣例,類方法的第一個形參被命名為 cls. 任何時候定義類方法都不是必須的(類方法能實現的功能都可以通過定義一個普通函數來實現,只要這個函數接受一個類對象做為參數就可以了).
定義類方法并使用類方法:
代碼如下:
class ABase(object):
@classmethod #類方法修飾符
def aclassmet(cls): print 'a class method for', cls.__name__
class ADeriv(ABase): pass
bInstance = ABase( )
dInstance = ADeriv( )
ABase.aclassmet( ) # prints: a class method for ABase
bInstance.aclassmet( ) # prints: a class method for ABase
ADeriv.aclassmet( ) # prints: a class method for ADeriv
dInstance.aclassmet( ) # prints: a class method for ADeriv

也就是說,類方法并不是必須的,使用普通函數也可以實現類方法的功能。
4.類的繼承
在python中,繼承一個類,就像這樣:
class A(object) #繼承object類
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石城县| 苗栗县| 新郑市| 富宁县| 襄汾县| 洪江市| 巴马| 台北市| 甘南县| 太仆寺旗| 鄂托克旗| 武宣县| 唐海县| 丰台区| 兴海县| 石狮市| 滁州市| 鄂伦春自治旗| 内黄县| 台安县| 礼泉县| 石林| 松桃| 英超| 佛坪县| 乌鲁木齐市| 崇信县| 萨嘎县| 莱芜市| 顺义区| 若尔盖县| 政和县| 进贤县| 锦屏县| 无为县| 德兴市| 潞城市| 青河县| 武定县| 梁山县| 昌宁县|