● 共两个文件:userInfo,reflex.py

alex|123456|Manager
hezewei|666|Student
taibai|2222|Teachar

userInfo

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2019/9/27 11:26
# @Author : zejin
# @File : reflex.py # 关于反射 class Manager:
OPERATE_DIC = [
("创建学生账号", "create_student"),
("创建课程", "create_course"),
("查看学生信息", "check_student")
] def __init__(self, name):
self.name = name def create_student(self):
print("创建学生账号") def create_course(self):
print("创建课程") def check_student(self):
print("查看学生信息") class Teachar:
OPERATE_DIC = [
("查看学生信息", "check_student"),
("给学生评分", "grage")
] def __init__(self, name):
self.name = name def check_student(self):
print("查看学生信息") def grage(self):
print("给学生评分") class Student:
OPERATE_DIC = [
("查看课程", "check_course"),
("选择课程", "choose_course"),
("查看已选择的课程", "chooosed_course")
] def __init__(self, name):
self.name = name def check_course(self):
print("查看课程") def choose_course(self):
print("选择课程") def chooosed_course(self):
print("查看已选择的课程") def login():
username = input("user:")
password = input("pwd:")
with open('userInfo') as f:
for line in f:
user, pwd, ident = line.strip().split("|")
if username == user and password == pwd:
print("登录成功!")
return username, ident
else:
return -1 import sys def main():
re = login()
while re == -1:
print("错误")
re = login()
user, id = re
file = sys.modules["__main__"] # 得到本页面
cls = getattr(file, id) # 得到本页面的某个类,例:class Manager
obj = cls(user) # 实例化此类的对象
opeate_dic = cls.OPERATE_DIC # 得到类中静态字段OPERATE_DIC
while True:
for num, i in enumerate(opeate_dic, 1):
print(num, i[0])
choice = int(input("\n请输入数字选择(输入-1结束)>>>"))
if choice == -1:
break
choice_item = opeate_dic[choice - 1]
getattr(obj, choice_item[1])() # choice_item[1])为对象中方法名 main()

reflex.py

最新文章

  1. ES7之Decorators实现AOP示例
  2. winform 实现pdf浏览
  3. php中的正则函数主要有三个-正则匹配,正则替换
  4. 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
  5. UI:MVC设计模式
  6. 使用 powershell 的 grep 过滤文本
  7. [JavaScript] js 判断闰年
  8. uva 624 CD 01背包打印路径
  9. 索引查找(索引查找、分块查找) C语言实现
  10. 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念
  11. 我国常用的坐标系统WKID列表[转]
  12. 优秀Python学习资源
  13. 1712: [Usaco2007 China]Summing Sums 加密
  14. metools,不花一分钱就能拥有自己的工具站点?
  15. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Clien
  16. 微信小程序之动态添加、删除指定内容(view)和获取input值
  17. 《Effective C++》资源管理:条款13-条款17
  18. jquery judge element exist
  19. trie数的实现
  20. JavaScript模块化-RequireJs实现AMD规范的简单例子

热门文章

  1. 实验报告(五)&第七周学习总结
  2. 常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)
  3. js实现倒计时+div下落
  4. Ubuntu中安装jenkins+docker,实现项目部署
  5. 二、kubernetes搭建集群
  6. 转载:jQuery的deferred对象详解
  7. Codeforces 1188A 构造
  8. js实用小函数收集
  9. Python 序列类型拆包 %s 和'{}'.format 的功能差异之一
  10. 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)