把乙個類封裝到另乙個類中 Python

2021-08-30 10:59:02 字數 1540 閱讀 9846

#物件的封裝 *****

#將乙個類的物件,封裝到,另乙個類中的方法中去

class teacher:

def __init__(self,tea_name,tea_age):

self.teacher_name = tea_name

self.teacher_age = tea_age

self.salary = 2000 #老師的初始工資為2k

class cource:

def __init__(self,cour_name,cost,teacher):

self.course_name = cour_name

self.course_teacher = teacher #這一句話是乙個類的物件傳進另乙個類中的關鍵 *****

self.course_cost = cost #cost為課時費 每上一節課總的工資都要增加的

def class_up(self):

self.course_teacher.salary += self.course_cost #course_teacher = t1,因為在下面建立course類的物件時:c1 = cource('生理課',30,t1),引數傳遞進來的

t1 = teacher('李傑',24) #建立類teacher的物件 t1

t2 = teacher('張昭',25)

t3 = teacher('子龍',22)

c1 = cource('生理課',30,t1) #t1以乙個物件的形式作為類cource的引數 此時t1就等於course類中的teacher *****

print(c1.course_name) #

print(c1.course_teacher.teacher_name) #c1.course_teacher = t1; c1.course_teacher.teacher_name = t1.teacher_name

print(c1.course_teacher.teacher_age) #c1.course_teacher.teacher_age = t1.teacher_age

print(c1.course_teacher.salary) #上課前的工資

c1.class_up() #上課

print(c1.course_teacher.salary) #上課後的工資

#直接把類當做乙個物件往method1裡放就可以了 

#類a是物件,變數b也是物件,在引數傳遞時,這兩個形式上沒太多區別

#類作為引數傳遞相當於實參,arg1,arg2就是形參;或者說例項化物件

class a(object):

def __init__(self,a):

self.a = a

b=2

def method1(arg1,arg2):

return arg1.a+arg2

if __name__ == '__main__':

print method1(a(2),b)

在乙個類中監聽另乙個類中變數改變

當乙個類中某個變數改變時,需要在另乙個類中做出應對,可以用下面的方法 以android為例 public class a extendsactivity implements b.oncupdatelistenerpublic void oncupdate int c public class bp...

乙個類作為另乙個類的資料成員

寫程式的時候希望乙個類能夠訪問另乙個類的資料成員 protected,private 例如類a要訪問類b中的資料成員。1.保持封裝性 可以通過在被訪問的類 b 中定義訪問許可權為public的函式,用來返回資料成員的引用。2.繼承 當乙個派生類從父類繼承時,父類的所有成員就成為子類的成員,因此可以將...

vc 在乙個類中呼叫另乙個類的變數

有幾個前提條件 1.被引用的變數所在類必須被完整地定義,而不是只有前向宣告 例如只是一行class a 2.被引用的變數必須是引用處可訪問的。也就是說,以下條件至少滿足其中之一 2.1.訪問變數的語句所在的類被宣告為被訪問的變數所在類的友元類 2.2.訪問變數的語句所在的函式被宣告為被訪問變數所在類...