Python中反射的简单应用
2024-10-07 18:08:05
● 共两个文件: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
最新文章
- ES7之Decorators实现AOP示例
- winform 实现pdf浏览
- php中的正则函数主要有三个-正则匹配,正则替换
- 复习课程jdbc:使用配置文件properties进行连接数据库,数据库存取图片,批处理,时间戳,事物回滚等等
- UI:MVC设计模式
- 使用 powershell 的 grep 过滤文本
- [JavaScript] js 判断闰年
- uva 624 CD 01背包打印路径
- 索引查找(索引查找、分块查找) C语言实现
- 《A First Course in Probability》-chape6-随机变量的联合分布-基本概念
- 我国常用的坐标系统WKID列表[转]
- 优秀Python学习资源
- 1712: [Usaco2007 China]Summing Sums 加密
- metools,不花一分钱就能拥有自己的工具站点?
- Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Clien
- 微信小程序之动态添加、删除指定内容(view)和获取input值
- 《Effective C++》资源管理:条款13-条款17
- jquery judge element exist
- trie数的实现
- JavaScript模块化-RequireJs实现AMD规范的简单例子
热门文章
- 实验报告(五)&;第七周学习总结
- 常用缓存淘汰算法(LFU、LRU、ARC、FIFO、MRU)
- js实现倒计时+div下落
- Ubuntu中安装jenkins+docker,实现项目部署
- 二、kubernetes搭建集群
- 转载:jQuery的deferred对象详解
- Codeforces 1188A 构造
- js实用小函数收集
- Python 序列类型拆包 %s 和'{}'.format 的功能差异之一
- 使用KEIL C51实现的简单合作式多任务操作系统内核(单片机实现版本)