首页 > 编程语言 > 详细

七. python面向对象(组合)

时间:2019-05-18 01:02:11      阅读:158      评论:0      收藏:0      [点我收藏+]

1.类的组合使用

# 组合就是 把小的功能组合成大的功能
# 例如: 这里是 把人这大个类   分成几个小类   进行组合类  从而形成了人
#
class Head(object):
         pass
#
class Foot(object):
         pass

# 躯干
class Trunk(object):
         pass

# 眼睛
class   eye(object):
         pass

# 组合就是 把小的功能组合成大的功能
# 例如: 这里是 把人这大个类   分成几个小类   进行组合类  从而形成了人

class Person:
    def __init__(self,name,id_a):
        self.name=name
        self.id_a=id_a
        self.head=Head()
        self.foot=Foot()
        self.trunk=Trunk()
        self.yes=eye()

a1=Person("张三","18号")
print(a1.__dict__)
# ‘name‘: ‘张三‘, ‘id_a‘: ‘18号‘, ‘head‘: <__main__.Head object at 0x000002730B4CACC0>, ‘foot‘: <__main__.Foot object at 0x000002730B4CACF8>, ‘trunk‘: <__main__.Trunk object at 0x000002730B4CAD30>, ‘yes‘: <__main__.eye object at 0x000002730B4CAD68>}
# 学校类
class School(object):
      def __init__(self,name,addr):
        self.name=name
        self.addr=addr
      def zhao_sheng(self):
            print(%s 正在招生%self.name)

 # 课程
class Course(object):
    def __init__(self,name,price,period,school):
         self.name=name
         print(name)      #   英语
         self.price=price
         self.period=period
         self.school=school
         print(school.__dict__)   # {‘name‘: ‘新东方‘, ‘addr‘: ‘北京‘}
         print(school.name)       #  新东方

# 实例化学校
a1=School("新东方","北京")
a2=School("希望","上海")
a3=School("万通","南京")

# 实例化课程
b1=Course("英语","200RMB","2小时",a1)

print(b1)  # <__main__.Course object at 0x00000228B3413D30>
# 学校类
class School(object):

    def __init__(self ,name ,addr):
        self.name =name
        self.addr =addr
    def zhao_sheng(self):
        print(%s 正在招生  %self.name)

# 课程
class Course(object):
    def __init__(self ,name ,price ,period ,school):
        self.name =name
        self.price =price
        self.period =period
        self.school =school

# 实例化学校
a1 =School("新东方" ,"北京")
a2 =School("希望" ,"上海")
a3 =School("万通" ,"南京")

menu ={

    1 :a1,
    2 :a2,
    3 :a3
}

while  True:
    aa =input(选择学校>>:)
    bb =menu[aa]
    name =input(课程名>>:)

    price =input(课程费用>>:)
    period =input(课程名周期>>:)

    new_Course =Course(name ,price ,period ,bb)
    print(课程[%s]属于[%s]学校  %(new_Course.name ,new_Course.school.name))
# 用low (列表) 比来解决关联组合方法




# 学校类
class School(object):
    def __init__(self ,name ,addr):
        self.name =name
        self.addr =addr
        self.course_list =[]

    def zhao_sheng(self):
        print(%s 正在招生  %self.name)


# 课程
class Course(object):
    def __init__(self ,name ,price ,period):
        self.name =name
        self.price =price
        self.period =period



# 实例化学校
a1 =School("新东方" ,"北京")
a2 =School("希望" ,"上海")
a3 =School("万通" ,"南京")

# 实例化课程
b1 =Course("英语" ,"200RMB" ,"2小时")
b2 =Course("python" ,"1000RMB" ,"6小时")

a1.course_list.append(b1)
a1.course_list.append(b2)

# print(a1.__dict__)                  # {‘name‘: ‘新东方‘, ‘addr‘: ‘北京‘, ‘course_list‘: [<__main__.Course object at 0x0000025EC841ADA0>]}
for  i in a1.course_list:
    print(i.name ,i.price)

# 英语 200RMB
# python 1000RMB

 

七. python面向对象(组合)

原文:https://www.cnblogs.com/Sup-to/p/10884334.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!