22-作业-反射
请使用面向对象实现栈(后进先出)
请是用面向对象实现队列(先进先出)
如何实现一个可迭代对象?
看代码写结果
class Foo(object):
def __init__(self): self.name = '武沛齐' self.age = 100
obj = Foo()
setattr(Foo, 'email', 'wupeiqi@xx.com')
v1 = getattr(obj, 'email')
v2 = getattr(Foo, 'email')
print(v1, v2)
请补充代码(提:循环的列表过程中如果删除列表元素,会影响后续的循环,推荐:可以尝试从后向前找)
li = ['李杰','女神','金鑫','武沛齐']
name = input('请输入要删除的姓氏:') # 如输入“李”,则删除所有姓李的人。
请补充代码
有如下字典,请删除指定数据。
class User(object):
def init(self, name, age):
self.name = name
self.age = age
info = [User('武沛齐',19),User('李杰',73),User('景女神',16)]
name = input('请输入要删除的用户姓名:')
请补充代码将指定用户对象再info列表中删除。
补充代码实现:校园管理系统。
!/usr/bin/env python
-- coding:utf-8 --
class User(object):
def init(self, name, email, age):
self.name = name
self.email = email
self.age = age
def __str__(self): return self.name
class School(object):
"""学校"""
def __init__(self): # 员工字典,格式为:{"销售部": [用户对象,用户对象,] } self.user_dict = {} def invite(self, department, user_object): """ 招聘,到用户信息之后,将用户按照指定结构添加到 user_dict结构中。 :param department: 部门名称,字符串类型。 :param user_object: 用户对象,包含用户信息。 :return: """ pass def dimission(self, username, department=None): """ 离职,讲用户在员工字典中移除。 :param username: 员工姓名 :param department: 部门名称,如果未指定部门名称,则遍历找到所有员工信息,并将在员工字典中移除。 :return: """ pass def run(self): """ 主程序 :return: """ pass
if name == 'main':
obj = School()
obj.run()
请编写网站实现如下功能。
需求:
实现 MIDDLEWARE_CLASSES 中的所有类,并约束每个类中必须有process方法。
用户访问时,使用importlib和反射 让 MIDDLEWARE_CLASSES 中的每个类对 login、logout、index 方法的返回值进行包装,最终让用户看到包装后的结果。
如:
用户访问 : http://127.0.0.1:8000/login/ ,
页面显示: 【csrf】【auth】【session】 登录 【session】 【auth】 【csrf】
用户访问 : http://127.0.0.1:8000/index/ ,
页面显示: 【csrf】【auth】【session】 登录 【session】 【auth】 【csrf】
即:每个类都是对view中返回返回值的内容进行包装。
MIDDLEWARE_CLASSES = [
'utils.session.SessionMiddleware',
'utils.auth.AuthMiddleware',
'utils.csrf.CrsfMiddleware',
]
from wsgiref.simple_server import make_server
class View(object):
def login(self):
return '登陆'
def logout(self): return '等处' def index(self): return '首页'
def func(environ,start_response):
start_response("200 OK", [('Content-Type', 'text/plain; charset=utf-8')])
obj = View()
method_name = environ.get('PATH_INFO').strip('/')
if not hasattr(obj,method_name):
return ["".encode("utf-8"),]
response = getattr(obj,method_name)()
return [response.encode("utf-8") ]
server = make_server('127.0.0.1', 8000, func)
server.serve_forever()
预习
单例模式
logging模块
项目目录结构
作者: do康解U
出处: https://www.cnblogs.com/David-domain/>
关于作者:专注数据库、Python 开发、ROS、深度学习,请多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接 如有问题, 可邮件(iamkuboy@163.com)咨询.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2017-06-15 OCP 11G 实验环境安装文档 ( RedHat5.5 + Oracle11g )