Python学习第十七课——组合

组合1

#组合 1
class Hand:
    pass

class Foot:
    pass

class Trunk:
    pass

class Head:
    pass

class Person:
    def __init__(self, id_num, name):
        self.id_num = id_num
        self.name = name
        self.hand = Hand()
        self.foot = Foot()
        self.trunk = Trunk()
        self.head = Head()

p1=Person(‘111‘,‘join‘)

print(p1.__dict__)

组合2

class School:
    def __init__(self, name, addr):
        self.name = name
        self.addr = addr

class Course:
    def __init__(self, name, price, period, school):
        self.name = name
        self.price = price
        self.period = period
        self.school = school

s1 = School(‘家里蹲‘, ‘郑州‘)
s2 = School(‘市里蹲‘, ‘开封‘)

c1 = Course(‘python‘, 10, ‘10天‘, s1)
c2 = Course(‘python‘, 100, ‘100天‘, s2)
# print(c1.__dict__)
print(c1.school.name)  # 家里蹲
print(c2.school.name)  # 市里蹲
print(c1.school.addr)  # 郑州
print(c2.school.addr)  # 开封

组合例子之点课系统

# 点课系统
class School:
    def __init__(self, name, addr):
        self.name = name
        self.addr = addr

class Teacher:     # 老师应该与课程进行关联
    def __init__(self, name, gongzi,course):
        self.name = name
        self.gongzi = gongzi
        self.course=course

class Course:
    def __init__(self, name, price, period, school, teacher):  # 课程应该和学校 还有 老师进行关联
        self.name = name
        self.price = price
        self.period = period
        self.school = school
        self.teacher = teacher

s1 = School(‘家里蹲‘, ‘郑州‘)
s2 = School(‘市里蹲‘, ‘开封‘)
s3 = School(‘县里蹲‘, ‘兰考‘)
t1 = Teacher(‘憨憨‘, 10000, ‘python‘)
t2 = Teacher(‘玫玫‘, 1000, ‘安卓‘)
t3 = Teacher(‘浩浩‘, 100, ‘c‘)
msg = ‘‘‘
1 家里蹲 郑州校区
2 市里蹲 开封校区
3 县里蹲 兰考校区
‘‘‘
msg1 = ‘‘‘
4 憨憨    python
5 玫玫    安卓
3 浩浩    c
‘‘‘
while True:
    print(msg)
    menu = {
        ‘1‘: s1,
        ‘2‘: s2,
        ‘3‘: s3
    }
    print(msg1)
    teacher_menu = {
        ‘4‘: t1,
        ‘5‘: t2,
        ‘6‘: t3,
    }
    choice = input(‘选择学校>>>‘)
    school_obj = menu[choice]  # 获取学校信息

    name = input(‘选择课程>>>‘)
    teacher_obj = teacher_menu[name]  # 获取老师信息
    gongzi = t1.gongzi
    price = input(‘选择费用>>>‘)
    period = input(‘选择周期>>>‘)
    teacher = input(‘选择老师>>>‘)

    new_course = Course(name, price, period, school_obj, teacher_obj)

    # print(new_teacher.__dict__)
    print(‘课程【%s】属于【%s】学校 老师为 %s‘ % (new_course.teacher.course, new_course.school.name, new_course.teacher.name))
    #课程【python】属于【家里蹲】学校 老师为 憨憨

原文地址:https://www.cnblogs.com/pyhan/p/12312093.html

时间: 2024-08-02 08:59:51

Python学习第十七课——组合的相关文章

python学习第十课 多路复用、ThreadingTCPServer、线程与进程

python 第十课 多路复用 I/O多路复用指:通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作 select    poll          epoll 网络操作.文件操作.终端操作等均属于IO操作,对于windows只支持Socket操作,其他系统支持其他IO操作,但是无法检测.如普通文件操作自动上次读取是否已经变化.所以主要用来网络操作 windows 和 mac的python 只提供select,linux上的python

Python学习日记(十七) os模块和sys模块

os模块 1.os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 import os print(os.getcwd()) #C:\Users\Administrator\PycharmProjects\PYL\temp_file 2.os.chdir() 改变当前脚本工作目录;相当于shell下cd import os print(os.getcwd()) #C:\Users\Administrator\PycharmProjects\PYL\temp_file o

python 学习第八课 -- 异常 反射 socket

面向对象 相关 一.isinstance(obj,cls)  查看obj是否为cls的对象 issubclass(sub,super) 查看类sub是否为super的派生类 二. 异常处理 1.   异常基础 try: pass except Exception,e: print e e为Exception的对象,print e 就是print Exception中的__str__ 2.   异常种类 常用异常 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo

python学习第六课 --面向对象

面向对象 class Person(object): --类 def __init__(self,name): --初始化函数 构造方法 self.name = name -- print '---create :',name def say_name(self): --方法 print 'my name is %s' %self.name p1 = Person('gf1')        --实例化 p2 = Person('gf2') p1.say_name()   --person.sa

python学习第六课 --常用模块

常用模块 sys sys.argv  命令行参数列表,第一个元素是程序本身路径 sys.exit(n)  退出程序,正常退出时exit(0) sys.version sys.maxint  最大的int值 sys.path 返回模块的搜索路径 sys.paltform sys.stdout.wirte("hello") val = sys.stdin.readline()[:-1] logging import logging logging.basicConfig(filename=

python学习第十课续 :线程池

线程分步走 t=threading.Thread(target=fun,args=()) t.start() 执行流程:         threading.Thread(target=fun,args=()) à           self.__target = target          self.__name = str(name or _newname())          self.__args = args         t.start  à           _star

Python 学习第十七天 jQuery

一,jQuery 知识详解 利用jquery 查找元素,操作元素 1,jquery 引入 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <div id="i1">123</div>

python 学习第十一课 上下文管理 paramiko 堡垒机 mysql操作

Rlock 与 Lock 这两种琐的主要区别是:RLock允许在同一线程中被多次acquire.而Lock却不允许这种情况.注意:如果使用RLock,那么acquire和release必须成对出现,即调用了n次acquire,必须调用n次的release才能真正释放所占用的琐 >>> help(threading.RLock) RLock(*args, **kwargs) Factory function that returns a new reentrant lock. A reen

python学习笔记十七:base64编码

Python中进行Base64编码和解码要用base64模块,代码示例: #-*- coding: utf-8 -*- import base64 str = 'cnblogs' str64 = base64.b64encode(str) print str64 #Y25ibG9ncw== print base64.b64decode(str64) #cnblogs