#简化选课系统代码:先登陆,然后判断身份并实例化,根据身份对应的类,让用户选择
class Manager:
operate_dict=[
('创造学生账号',"creat_student"),
('查看学生信息',"check_student")
]
def __init__(self,name):
self.name=name
def creat_student(self):
print('创建学生账号')
def check_student(self):
print('查看学生信息') class Student:
def __init__(self, name):
self.name = name
def check(cls):
print('查看课程')
def login(cls):
print('登录') class Teacher:
def __init__(self, name):
self.name = name
def login():
username=input('user:')
password=input('password:')
with open('userinfo')as f:
for line in f :
user,pwd,ident=line.strip().split('|')
if user==username and pwd==password:
print('登陆成功')
return username,ident
import sys
def main():
usr,id=login()
file=sys.modules['__main__']
cls=getattr(file,id)
obj=cls(usr)
Operate_dict=cls.operate_dict
print(Operate_dict)
for num,item in enumerate(Operate_dict):
print(num,item[0])
choice=int(input("num>>>"))
choice_item=Operate_dict[choice-1]
getattr(obj.choice_item[1])()
main()

这个Demo不涉及数据库和JS等内容,只是单纯考察反射知识点.

接下来进行重点部分的分析

第一次跟着写,分析也是云里雾里的.可能还会更新吧(?)

________________________________________________________________________________

20190921更新一波

搭配代码开发规范可以写出相对完整的框架.

比如这样写一个框架的开头:

python选课系统demo的小练习的更多相关文章

  1. 一个简单的python选课系统

    下面介绍一下自己写的python程序,主要是的知识点为sys.os.json.pickle的模块应用,python程序包的的使用,以及关于类的使用. 下面是我的程序目录: bin是存放一些执行文件co ...

  2. python选课系统

    程序名称: 选课系统 角色:学校.学员.课程.讲师 要求: 1. 创建北京.上海 2 所学校 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

  3. python选课系统作业

    # 选课系统# 角色:学校.学员.课程.讲师# 要求:# 1. 创建北京.上海 2 所学校# 2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海 ...

  4. python 选课系统

    couser.py: import sys,osBASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))sys.pa ...

  5. python面向对象编程小程序- 选课系统

    选课系统 花了一晚上写的,可能还存在不足 1.程序框架 2.文件夹建立 D:/选课系统 |___api | |___common_api.py |___bil | |___common.py |___ ...

  6. python+requests模拟登陆 学校选课系统

    最近学校让我们选课,每天都有不同的课需要选....然后突发奇想试试用python爬学校选课系统的课程信息 先把自己的浏览器缓存清空,然后在登陆界面按f12 如图: 可以看到登陆时候是需要验证码的,验证 ...

  7. python之选课系统详解[功能未完善]

    作业需求 思路:1.先写出大体的类,比如学校类,学生类,课程类--   2.写出类里面大概的方法,比如学校类里面有创建讲师.创建班级-- 3.根据下面写出大致的代码,并实现其功能       遇到的困 ...

  8. Python开发程序:选课系统-改良版

    程序名称: 选课系统 角色:学校.学员.课程.讲师要求:1. 创建北京.上海 2 所学校2. 创建linux , python , go 3个课程 , linux\py 在北京开, go 在上海开3. ...

  9. python实现学生选课系统 面向对象的应用:

    一.要求: 选课系统 管理员: 创建老师:姓名.性别.年龄.资产 创建课程:课程名称.上课时间.课时费.关联老师 使用pickle保存在文件 学生: 学生:用户名.密码.性别.年龄.选课列表[].上课 ...

随机推荐

  1. .netcore 打包发布到ubuntu linux上

    使用命令行发布如下 cd    NetCoreServerOne    // project file place  项目文件 所在目录 dotnet build -r ubuntu.16.04-x6 ...

  2. 39、扩展原理-BeanFactoryPostProcessor

    39.扩展原理-BeanFactoryPostProcessor BeanPostProcessor:bean后置处理器,bean创建对象初始化前后进行拦截工作的 BeanFactoryPostPro ...

  3. sping boot 笔记 哎呦不错哦

    http://blog.csdn.net/u011998835/article/details/78352829 学习

  4. 九.配置SMB共享(Samba共享)

    • Samba 软件项目 – 用途:为客户机提供共享使用的文件夹 – 协议:SMB(TCP 139).CIFS(TCP 445)  • 所需软件包:samba • 系统服务:smb   管理共享账号 ...

  5. C++构造函数的default和delete

    C++11中,当类中含有不能默认初始化的成员变量时,可以禁止默认构造函数的生成, myClass()=delete;//表示删除默认构造函数 myClass()=default;//表示默认存在构造函 ...

  6. 学生管理系统——数据库、java基础

    1.项目分层 view层:视图层 controller层:控制层 service层:业务层 dao层:数据库访问层 domain:实体包 tools:工具类 2.jar包 3.配置文件 4.程序设计 ...

  7. loj #136

    最小瓶颈路 做最小生成树是进行特判即可 时间复杂度 n * k #include <bits/stdc++.h> const int N = 1010, M = 1e5 + 10; str ...

  8. 20191214数组习题之三:报数(附pow函数简单用法)

  9. Homebrew 使用国内镜像

    在国内的网络环境下使用 Homebrew 安装软件的过程中,可能会长时间卡在 Updating Homebrew ... 方法一:按command + c 取消本次更新操作,直接安装软件 方法二:设置 ...

  10. 全局设置页面颜色 返回按钮样式 iOS

    思路 1.建个UIViewController的分类 2.hook方法viewDidLoad(Aspects是三方库 可以不用) 3.看下面蓝色部分代码 #import "UIViewCon ...