在python中,用變數表示特徵,用函式表示技能,因而類是變數與函式的結合體,物件是變數與方法(指向類的函式)的結合體。
class 類名:#定義乙個類
類體
類有兩種作用:屬性引用和例項化
t=類名()#例項化
類名加括號就是例項化,會自動觸發__init__函式的執行,可以用它來為每個例項定製自己的特徵
class 類名:
def __init__(self,x):#self的作用是在例項化時自動將物件/例項本身傳給__init__的第乙個引數,self可以是任意名字
self.x=x #給__init__的第乙個引數,self可以是任意名字
t=類名(特徵)
資料呼叫
class 類名:
w=1def __init__(self,x):
self.x=x
def foo(self):
print('foo')
t=類名(引數)
t.w=1#呼叫變數
t.foo()#呼叫函式
物件/例項本身只有資料屬性,但是python的class機制會將類的函式繫結到物件上,稱為物件的方法,或者叫繫結方法,繫結方法唯一繫結乙個物件,同乙個類的方法繫結到不同的物件上,屬於不同的方法,記憶體位址都不會一樣。
物件的繫結方法的特別之處在於:obj.func()會把obj傳給func的第乙個引數。
==========================
建立乙個類就會建立乙個類的命名空間,用來儲存類中定義的所有名字,這些名字稱為類的屬性
而類有兩種屬性:資料屬性和函式屬性。其中類的資料屬性是共享給所有物件的,而類的函式屬性是繫結到所有物件的。
class star:
x=1def __init__(self,name):
self.name=name
def foo(self):
return 'foo from {} '.format(self.name)
tom=star('tom')
jack=star('jack')
print(tom.x,id(tom.x))#1 記憶體位址1763226688
print(jack.x,id(jack.x))#1 記憶體位址1763226688
print(tom.foo(),tom.foo) # foo from tom >
print(jack.foo(),jack.foo) #foo from jack >
建立乙個物件/例項就會建立乙個物件/例項的命名空間,存放物件/例項的名字,稱為物件/例項的屬性。
在obj.name會先從obj自己的命名空間裡找name,找不到則去類中找,類也找不到就找父類...最後都找不到就丟擲異常
print(tom.__dict__)#
print(jack.__dict__)#
print(star.__dict__)#
python物件導向程式設計 類和例項化
物件導向程式設計有三大特徵 封裝,繼承,多型 封裝 讓 有了的完整性,把客觀的現實中存在的事物抽象成計算機中的物件 好處 將變化隔離 便於使用 提高復用性 提高安全性 繼承 物件導向的乙個重要特性是復用性.繼承是實現復用性的乙個重要手段.可以在不重複編寫以實現的功能的前提下,對功能進行復用和拓展.繼...
C 學習物件導向 例項化建立乙個類
目錄 c 學習物件導向 例項化建立乙個類 案例1 設計乙個圓類,求其周長 案例2 設計乙個學生類,屬性有姓名和學號,可以給姓名和學號賦值 includeusing namespace std const double pi 3.14 設計乙個圓類,求圓的周長 圓周長 2 pi r class設計乙個...
物件導向 類 類 例項初始化)
1 類的成員 public class testblock class myclass 結果為 這是非靜態 塊 無參構造 在每次建立物件時都執行 public class testblock class myclass public myclass string str 結果為 這是非靜態 塊 無參...