Python中類與類之間屬性和方法的調用
class A(object): #定義一個類 name='python' #類屬性 def __init__(self): #實例屬性 self.age=18 def a_print(self): #實例方法 print('aaa') @classmethod #類方法 def b_print(cls): #cls指代當前的類 print(cls.__name__) #獲取當前類名 @staticmethod #靜態方法 def c_print(): print('static') print(A.name) #調用類屬性 A.b_print() #調用類方法 # print(A.age) 不可以調用實例屬性 print(A().age) #匿名實例對象可以調用實例屬性 a_obj=A() # 類對象 可以調用這個類中所有方法和屬性 print(a_obj.age) print(a_obj.name) a_obj=A() #在外部生成一個對象 a_obj.num=1000 #對 對象增加一個額外屬性,并賦值 def func(a_obj): #再把這個對象傳遞到另一個方法中 print(a_obj.num) #這個方法中我就可以拿到這個對象,并用這個對象獲取到這個對象額外添加 的數據 func(a_obj) #可以在方法中傳遞數據 #一個類想要調用另一個類的方法和屬性,有兩種形式 # 1.繼承 # 2.把另外一個對象傳遞到這個類中,在這個類中調用實例對象 # 把一個類當做是另一個類的屬性,通過屬性調用的方式調用另一個類的方法 class B(object): def __init__(self): self.a_obj=A() #把A對象直接作為B的屬性 def func(self,a_obj): print(a_obj.num) a_obj.a_print() b_obj=B() b_obj.a_obj.a_print() b_obj.a_obj.b_print() b_obj=B() b_obj.func(a_obj)
例:
son.py和all.py在同一個文件夾下面,可以通過from son import *或者import son來互相調用。
可以動態實例化son.py里面的SON類,而且也可以把ALL的實例通過參數傳遞給SON,從而調用ALL類的方法。
all.py
from son import * class ALL(): def __init__(self): self.mSon = SON(self) def getAll(self): print "=================getall---------------" return self.mSon.getSon() def getAlltest(self): print "=================getAlltest---------------" Instance = ALL() Instance.getAll()
son.py
class SON(): def __init__(self, instance): self.mBattle = instance def getSon(self): return self.mBattle.getAlltest()
更多Python相關技術文章,請訪問Python教程欄目進行學習!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com