python 类组合_python类的组合

python之类的组合

1. 什么是组合

组合指的是某一个对象拥有一个属性,该属性的值是另外一个类的对象

class Foo:

xxx=111

pass

class Bar:

yyy=222

pass

obj=Foo()

obj.attr=Bar()

obj.xxx

obj.attr.yyy

2. 为何要用组合

通过为某一个对象添加属性(属性的值是另外一个类的对象)的方式,可以间接地将两个类关联/整合/组合到一起

从而减少类与类之间代码冗余(目的)

class Foo1:

pass

class Bar:

pass

obj_from_bar=Bar()

obj1=Foo1()

obj1.attr1=obj_from_bar(在obj1中增加了一个属性,名字为attr1,值为obj_from_bar(类Bar的对象))

3. 如何用组合

class OldboyPeople:

school = 'Oldboy'

def __init__(self,name,age,sex,):

self.name = name

self.age = age

self.sex = sex

class OldboyStudent(OldboyPeople):

def __init__(self, name, age, sex,score=0):

OldboyPeople.__init__(self,name,age,sex)

self.score = score

def choose_course(self):

print('%s choosing course' % self.name)

class OldboyTeacher(OldboyPeople):

def __init__(self,name,age,sex,level):

OldboyPeople.__init__(self,name,age,sex)

self.level=level

def score(self,stu,num):

stu.score=num

class Course:

def __init__(self,c_name,c_price,c_period):

self.c_name = c_name

self.c_price = c_price

self.c_period = c_period

def tell_info(self):

print('' %(self.c_name,self.c_price,self.c_period))

# 创建课程对象

python=Course('python',1900,'5mons')

java=Course('JAVA',1900,'4mons')

stu1=OldboyStudent('刘二蛋',38,'male')

stu1.course=python #这就是两个类的组合(在stu1这个对象里,加了一个属性,名字为course,值是另一个对象,这样就可以使用另一个对象里的属了)

# print(stu1.__dict__)

stu1.course.tell_info()

tea1=OldboyTeacher('egon',18,'male',10)

tea1.course=python

# print(tea1.__dict__)

tea1.course.tell_info()

'''

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值