這個是跟著教程一步一步走過來的,所以記下自己學習的過程。
一、類基礎
1、類的定義
class :
class (父類名):
>>>classhuman:
... age=0
... ***=''
... name =''
>>>classstudent(human):
... school =''
... number =0
... grade =0
2、類的使用
如果直接使用類名修改其屬性,那麼將影響已經例項化的物件。
>>>classa:
... name ='a'
... num =2
>>> a.name
'a'>>> a = a()#例項化a物件
>>> a.name
'a'>>> a.name ='b'
>>> a.name
'b'>>> a.name
'b'二、類的屬性和方法
1、類的屬性:
如果類的屬性是以兩條下劃線開始則該屬性為類的私有屬性,不能在類外部被訪問。
私有屬性的命名形式: __privateattrs
如果在類內部的方法中使用類的私有屬性,則應該以如下方式呼叫。
self.__privateattrs
>>>classbook:
... __author =''
... __name =''
... __page =0
... price =0
>>> a = book()
>>> a.__author
traceback (most recent call last):
file"", line1,in
attributeerror: book instance has no attribute'__author'
>>> a.price
0 2、類的方法
在類的內部使用def關鍵字可以為類定義乙個方法。與函式定義不同的是,類的方法必須包含引數 'self 』 ,
且'self'必須為第乙個引數。和類的私有屬性命名相同,類的私有方法名也要以兩條下劃線開始。
>>>classbook:
... __author =''
... __name =''
... __page =0
... price =0
...defshow(self):
...printself.__author
...printself.__name
...defsetname(self,name):
...self.__name = name
>>> a = book()
>>> a.show()
>>> a.setname('tom')
>>> a.show()
tom在python中有一類以兩條下劃線開始並且以兩條下劃線結束的類方法,稱之為專有方法。
__init__ 建構函式,生成物件時呼叫
__del__ 析構函式,釋放物件時呼叫
__add__ 加運算
__mul__ 乘運算
__cmp__ 比較運算
__repr__ 列印、轉換
__setitem__ 按照索引賦值
__getitem__ 按照索引獲取值
__len__ 獲得長度
__call__ 函式呼叫
>>>classbook:
... __author =''
... __name =''
... __page =''
... price =0
...def__check(self,item):
...ifitem =='':
...return0
...else:
...return1
...defshow(self):
...ifself.__check(self.__author):
...printself.__author
...else:
...print'no value'
...ifself.__check(self.__name):
...printself.__name
...else:
...print'no value'
...defsetname(self,name):
...self.__name = name
...def__init__(self,author,name):
...self.__author = author
...self.__name = name
三、類的繼承
1)單繼承
>>>classparent:
... __a =''
... __b =0
...def__init__(self,a,b):
...self.__a = a
...self.__b = b
...defshow(self):
...printself.__a
...printself.__b
>>> a = parent('a',2)
>>> a.show()
a>>>classchild(parent):
... __c =''
... __d =4
...defshowinfo(self):
...self.show()
>>> b = child('c',3)
>>> b.show()
c>>> b.showinfo()
c2)多重繼承
# -*- coding:utf-8 -*-
classa:#定義類a
name ='a'
__num =1
defshow(self):
printself.name
printself.__num
defsetnum(self,num):
self.__num = num
classb:#定義類b
nameb ='b'
__numb =2
defshow(self):
printself.nameb
printself.__numb
defsetname(self,name):
self.__name = name
classc(a,b):
defshowall(self):
printself.name
printself.nameb
show = b.show#在這裡表明show方法為b類的show方法,後來修改加上的
>>>importjicheng
>>> a = jicheng.a()
>>> a.show()
a>>> c = jicheng.c()
>>> c.showall()ab
>>> c.show()#預設呼叫a類的show方法
a>>> d =jicheng.c()
>>> d.show()
b五)過載
1)方法的過載實際上就是在類中使用def關鍵字過載父類的方法。如果過載父類中的方法,但又需要
在類中使用父類的該方法,可以使用父類名加『 .』加方法名的形式呼叫。
# -*- coding:utf-8 -*-
classmylist:
__mylist =
def__init__(self,*args):
self.__mylist =
forarginargs:
def__add__(self,n):#過載『+』運算子
foriinrange(0, len(self.__mylist)):
self.__mylist[i] =self.__mylist[i] + n
defshow(self):
printself.__mylist
>>>importchongzai
>>> l = chongzai.mylist(1,2,3,4,5)
>>> l.show()
[1,2,3,4,5]
>>> l +2
>>> l.show()
[3,4,5,6,7]
python程式設計小結 Python程序程式設計小結
1.有兩種方式來實現併發性,一種方式是讓每個 任務 或 程序 在單獨的內在空間中工作,每個都有自已的工作記憶體區域。不過,雖然程序可在單獨的記憶體空間中執行,但除非這些程序在單獨的處理器上執行,否則,實際並不是 同時 執行的。是由作業系統把處理器的時間片分配給乙個程序,用完時間片後就需退出處理器等待...
python是高階動態程式語言 Python語言
python是一門跨平台 開源 免費的解釋型高階動態程式語言。python支援命令式程式設計 how to do 函式式程式設計 what to do 完全支援物件導向程式設計,擁有大量擴充套件庫。膠水語言 可以把多種不同語言編寫的程式融合到一起實現無縫拼接,更好地發揮不同語言和工具的優勢,滿足不同...
Python程式設計學習第十二課之Python的注釋
當我們編寫的程式 量很大,而且內部邏輯關係非常複雜的時候,閱讀 是非常吃力的。所以我們的程式設計師寧願自己重新寫 也不願意去熟悉別人的 那麼,實際編寫 的過程之中,對 加筆記說明就顯得尤為重要了。在這裡,針對 的筆記被稱為注釋。在之前的幾節課裡面,我們已經不止一次用過注釋了,如下圖所示,以 符號開頭...