python类的组合

时间:2023-03-09 04:18:27
python类的组合

类的组合,即在类实例化时,将另一个类的实例作为参数传入,这样可以将两个实例关联起来。

当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好。

例如,描述一个机器人类,这个大类是由很多互不相关的小类组成,如机械胳膊类、腿类、电池类等。

当类之间有很多相同的属性,提取这些统统的属性做成基类,用继承比较好。

class course:
    def __init__(self,name,price,period,teacher):
        self.name=name
        self.price=price
        self.period=period
        self.teacher=teacher
class teacher:
    def __init__(self,name,sex):
        self.name=name
        self.sex=sex
class student:
    def __init__(self,name,age,course):
        self.name=name
        self.age=age
        self.course=course
t1=teacher('Bob',38)
t2=teacher('Jack',45)
t3=teacher('Jane',45)
c1=course('python',6000,'3 months',t2)#将teacher作为参数传递给课程实例
c2=course('linux',7000,'5 months',t1)
c3=course('mysql',6500,'5 months',t3)
d={':c3}
name='Alice'
age=21
while True:
    choice=input('please choice course:')
    if choice in d.keys():
        s1=student(name,age,d[choice])#将课程实例作为参数传递给学生实例
        print(s1.__dict__)
        print('%s choose course %s,%s is the teacher'%(s1.name,s1.course.name,s1.course.teacher.name))
    elif int(choice)==0:
        exit(0)
    else:
        print('please input correct choice')