-
请使用面向对象实现栈(后进先出)
class Stack(object): def __init__(self): self.data_list = [] def push(self, val): self.data_list.append(val) def pop(self): self.data_list.pop()
-
请是用面向对象实现队列(先进先出)
class Stack(object): def __init__(self): self.data_list = [] def push(self, val): self.data_list.append(val) def pop(self): self.data_list.pop(0)
-
如何实现一个可迭代对象?
在类中实现`__iter__`方法且返回一个迭代器
-
看代码写结果
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) #wupeiqi@xx.com wupeiqi@xx.com
-
请补充代码(提:循环的列表过程中如果删除列表元素,会影响后续的循环,推荐:可以尝试从后向前找)
li = ['李杰','女神','金鑫','武沛齐'] name = input('请输入要删除的姓氏:') # 如输入“李”,则删除所有姓李的人。 # 请补充代码
li = ['李杰','女神','金鑫','武沛齐'] name = input('请输入要删除的姓氏:') # 如输入“李”,则删除所有姓李的人。 # 请补充代码 new_li = [] for item in range(len(li)): if li[item][0] != name: new_li.append(li[item]) print(new_li)
li = ['李杰','女神','金鑫','武沛齐'] name = input('请输入要删除的姓氏:') # 如输入“李”,则删除所有姓李的人。 # 请补充代码 for item in range(len(li)-1,-1,-1): if li[item].startswith("李"): del li[item] print(li)
-
有如下字典,请删除指定数据。
class User(object): def __init__(self, name, age): self.name = name self.age = age info = [User('武沛齐', 19), User('李杰', 73), User('景女神', 16)] name = input('请输入要删除的用户姓名:') # 请补充代码将指定用户对象在info列表中删除。
class User(object): def __init__(self, name, age): self.name = name self.age = age info = [User('武沛齐', 19), User('李杰', 73), User('景女神', 16)] print(info) name = input('请输入要删除的用户姓名:') # 请补充代码将指定用户对象在info列表中删除。 new_info = [] for i in range(len(info)): if info[i].name != name: new_info.append(info[i]) print(new_info)
class User(object): def __init__(self, name, age): self.name = name self.age = age info = [User('武沛齐', 19), User('李杰', 73), User('景女神', 16)] print(info) name = input('请输入要删除的用户姓名:') # 请补充代码将指定用户对象在info列表中删除。 for i in range(len(info)-1,-1,-1): if info[i] .name ==name: del info[i] print(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()
#!/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: """ self.user_dict[department].append(user_object) def dimission(self, username, department=None): """ 离职,讲用户在员工字典中移除。 :param username: 员工姓名 :param department: 部门名称,如果未指定部门名称,则遍历找到所有员工信息,并将在员工字典中移除。 :return: """ new_user_dict = {'销售部':[]} for i in self.user_dict['销售部']: # print(i.name) if i.name != username: new_user_dict['销售部'].append(i) self.user_dict = new_user_dict def run(self): """ 主程序 :return: """ while True: # choice_dic = {'1':self.invite,'2':self.dimission} choice = input("请输入选择(1,销售部招聘。2,离职)") if choice =='1': name = input("请输入姓名:") email = input("请输入邮箱:") age = input("请输入年龄:") user_object = User(name,email,age) # choice_dic[choice]('销售部',user_object) self.invite('销售部',user_object) print("%s已加入到面试列表中,面试列表如下:"%(user_object)) print(self.user_dict) else: name = input("请输入离职人员姓名:") # email = input("请输入邮箱:") # age = input("请输入年龄:") # user_object = User(name, email, age) # choice_dic[choice]('销售部', name) self.dimission(name) print("%s已离职!当前面试列表如下:"%(name)) print(self.user_dict) 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】【sessionx】 登录 【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()
-
#!/usr/bin/env python
# -*- coding:utf-8 -*-
MIDDLEWARE_CLASSES = [
'utils.session.SessionMiddleware',
'utils.auth.AuthMiddleware',
'utils.csrf.CsrfMiddleware',
'utils.element.ElementMiddleware',
]
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)()
# 对字符串的前后进行包装
# msg = "【auth】【session】 %s 【session】 【auth】 " %response
import importlib
for path in MIDDLEWARE_CLASSES:
module_path,cls_name = path.rsplit('.',maxsplit=1) # 'utils.session.SessionMiddleware',
module = importlib.import_module(module_path) # from utils import session
cls = getattr(module,cls_name)
obj = cls()
response = obj.process(response)
return [response.encode("utf-8") ]
server = make_server('127.0.0.1', 8000, func)
server.serve_forever()