a、描述具備相同的屬性和方法的對象集合,它定義了該集合中每一個對象所共有的屬性和方法,對象是類的實例函數
b、類名習慣上使用單數名詞,而且首字母大寫code
c、除非是Python 3.0 以前版本中默認附帶的代碼,不然再繼續使用舊式類已無必要,新式類的語法中,須要在模塊或者腳本開始的地方放置賦值語句_metaclass_=type(並不會在每一個例子總顯示地包含這行語句。)除此以外也有其餘的方法,例如繼承新式類(好比 object) 對象
#類的定義 class ClassName: <statement-1> . . <statement-N>
類實例化後,可以使用其屬性,建立一個類,能夠經過類名訪問其屬性繼承
a、類的實例化,對象包括兩個數據成員(類變量和實變量)和方法it
b、類對象支持兩種操做:屬性引用和實例化class
c、屬性引用使用和 Python 中全部屬性引用同樣的標準語法:obj.name變量
d、類對象建立後,類命名空間全部的命名都是有效屬性名object
class MyClass: "一個簡單的類實例" i = 12345 def f(self): return 'hello,word' #實例化類 x = MyClass() print ("Myclass 類的屬性 i",x.i) print ("類的方法",x.f()) #輸出 MyClass 類的屬性 i 爲: 12345 MyClass 類的方法 f 輸出爲: hello world
將對象建立爲有初始狀態的,類可能會定義一個名爲_init_()的特殊方法(構造方法),實例化會自動調用命名空間
#構造方法 class Myclass: def _int_(self): self.data = [] x = Myclass #實例化會自動調用構造函數 class Complex: def __init__(self,realpart,imagpart): #有參數的構造方法 self.r = realpart self.i = imagpart x = Complex(3.0,-4.5) print (x.i,x.r) #輸出 -4.5 3.0
類的 方法與普通的函數只有一個特別的區別--它們必須有一個額外的第一個參數名稱,按照慣例它的名稱是 selfmeta
class Test: def prt(self): print (self) print (self.__class__) t = Test() t.prt() #輸出 <__main__.Test instance at 0x0000000002B3CA88> __main__.Test
從輸出能夠很明顯的看出,self 表明的是類的實例,表明當前對象的地址,而 self.class 則指向類,self不是Python 的關鍵字,能夠把它換成 runoob也是能夠正常執行的
在類內部,使用 def 關鍵字來定義一個方法,與通常函數定義不一樣,類方法必須包含參數 self ,且爲第一個參數,self 表明的是類的實例
class People: #定義基本屬性 name = '' age = 0 _weight = 0 #私有化的屬性,類外部沒法直接訪問 #定義構造方法 def __init__(self,name,age,_weight): self.name = name self.age = age self._weight = _weight def speak(self): print ("%s 說:我 %s 歲 "%(self.name,self.age)) p = People('runob',10,30) p.speak() #輸出 runob 說:我 10 歲