類(class):用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。
方法:類中定義的函式。
類變數:類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。
資料成員:類變數 在整個例項化的物件中是公用的。類變數定義在勒種且在函式體之外。類變數通常不作為例項變數使用。
方法重寫:如果從父類整合的方法不能滿足子類的需求,可以對其進行改寫,整個過程叫做方法的覆蓋。
區域性變數:定義在方法中的變數,只作用於當前例項的類。
例項變數:在類的宣告中,屬性是用變數來標識的,這種變數就稱為例項變數,例項變數就是乙個用self修飾的變數。
繼承:即乙個派生類繼承基類的字段和方法。繼承也允許把乙個派生類的物件作為乙個基類物件對待。
例項化:建立乙個類的例項,類的具體物件。
物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。
class
classname:
1>..
.
類物件支援兩種操作:屬性引用和例項化
屬性引用使用和python中所有的屬性引用一樣的標準語法
類物件建立後,類命名空間中所有的命名都是有效屬性名。
class
myclass
:'''乙個簡單的類例項'''
i =12345
deff
(self)
:return
'hello world'
x = myclass
類有乙個名為__init__()的特殊方法(構造方法),該方法在類例項化時會自動呼叫,像下面這樣:
def
__init__
(self)
: self.data =
類定義了__init__()方法,類的例項化操作會自動呼叫__init__() 方法。如下例項化類myclass,對應的__init__()方法就會被呼叫。
x = myclass()
init()方法可以有引數,引數通過__init__()傳遞到類的例項化操作上。例如:
class
complex
:def
__init__
(self,realpart,imagpart)
: self.r = realpart
self.i = imagpart
x = complex(
3.0-
4.5)
print
(x.r, x.i)
#輸出結果: 3.0 -4.5
self代表類的例項,而非類
類的方法與普通的函式只有乙個特別的區別–它們必須有乙個額外的第一給引數名稱,按照慣例它的名稱是self.
class
test
:def
prt(self)
:print
(self)
print
(self.__class__)
t = test(
)t.prt(
)
class
people
: name =
'' age =
0 __weight =
0def
__init__
(self,n,a,w)
: self.name = n
self.age = a
self.__weight = w
defspeak
(self)
:print
(%s 說:我%d隨)
%(self.name,self.age)
p = people(
'runoob',10
,30)p.speak(
)
class
derivedclassname
(baseclassname1)
:1>..
.
baseclassname(示例中的基類名)必須與派生類定義在乙個作用域內。除了類,還可以用表示式,基類定義在另乙個模組中時這一點非常有用。
class derivedclassname(modname.baseclassname):
init: 建構函式,在生成物件時呼叫
del: 析構函式,釋放物件時使用
repr: 列印,轉換
setitem: 按照索引賦值
getitem: 按照索引獲取值
len: 獲得長度
cmp: 比較運算
call: 函式呼叫
add: 加運算
sub: 減運算
mul: 乘運算
truediv: 除運算
mod: 求餘運算
pow: 乘方
關於Python那些事兒
1.易於學習 python有相對較少的關鍵字,結構簡單,和乙個明確定義的語法,學習起來更加簡單。2.易於閱讀 python 定義的更清晰。3.易於維護 python的成功在於它的源 是相當容易維護的。4.乙個廣泛的標準庫 python的最大的優勢之一是豐富的庫,跨平台的,在unix,windows和...
Python那些事兒 Python中的生成器
python使用生成器對延遲操作提供了支援,所謂延遲操作,是指在需要的時候才產生結果,而不是立即產生結果。gen exp i for i in range 10 生成器表示式 print gen exp generator for i in gen exp 取出生成器表示式的值,for迴圈 prin...
python編譯碼的那些事兒
在python程式設計尤其是處理web應用時,遇到編譯碼問題的概率較大,通常這種問題也比較繁瑣,記下自己的理解,以備不時之需。編譯碼存在的意義主要是由於各種不同編碼方式的存在,有gbk啦,也有utf 8啦,還有gb2312等等。python中的decode和encode的引數意義是一樣的,即deco...