day18 作业
1、编写课上讲解的有参装饰器准备明天默写
def auth(login_type):
def outter(func):
def warpper(*args,**kwargs):
func(*args,**kwargs)
if login_type=="mysql":
print("基于数据库")
elif login_type=="file":
print("基于文件")
return warpper
return outter
@auth("mysql")
def my_mysql():
print("我是数据库函数")
@auth("file")
def my_file():
print("我是文件函数")
my_mysql()
my_file()
2、在文件开头声明一个空字典,然后在每个函数前加上装饰器,完成自动添加到字典的操作
d = {}
def d_append(n):
def outter(func):
d[n] = [func.__name__, func]
def warpper():
func()
return warpper
return outter
@d_append(0)
def index():
print("我是主页")
@d_append(1)
def footer():
print("我是尾页")
print(d)
3、编写日志装饰器,实现功能如:一旦函数f1执行,则将消息2017-07-21 11:12:11 f1 run写入到日志文件中,日志文件路径可以指定
import time
def timmer(func):
def warpper(*args,**kwargs):
func(*args,**kwargs)
file_path = input("请输入文件路径:")
with open(f"{file_path}","a",encoding="utf-8") as f :
f.write(time.strftime(f'%Y-%m-%d %X {func.__name__} run\n'))
return warpper
@timmer
def f1():
print("我是f1")
@timmer
def f2():
print("我是f2")
f1()
f2()
4、基于迭代器的方式,用while循环迭代取值字符串、列表、元组、字典、集合、文件对象
str1 = "hzisdsb"
list1 = [1,2,3,4]
dict1 = {"a":1,"b":2}
set1 = {1,2,3}
tuple1 = (1,2,3,)
def my_for(type,count=0):
iteration = type.__iter__()
while count<len(type):
print(iteration.__next__())
count+=1
my_for(str1)
my_for(list1)
my_for(dict1)
my_for(set1)
my_for(tuple1)
with open("a.txt","r",encoding="utf-8")as f :
while True:
try:
print(f.__next__())
except StopIteration:
break
5、自定义迭代器实现range功能
def my_rang(start,stop,step=1):
while start<stop:
yield start
start+=step
res = my_rang(1,100,1)
print(res.__next__())
print(res.__next__())
print(res.__next__())
day18 作业的更多相关文章
- 老男孩Day18作业:后台用户管理
一.作业需求: 1.用户组的增删改查 2.用户增删该查 - 添加必须是对话框 - 删除必须是对话框 - 修改,必须显示默认值 3.比较好看的页面 二.博客地址:https://www.cnblogs. ...
- day18作业
作业: # 1.编写课上讲解的有参装饰器准备明天默写 def auth(file_type): def outer(func): def inter(*args,**kwargs): if file_ ...
- python day18 作业 Django 开发主机管理系统
http://www.cnblogs.com/liang2580/p/9248803.html
- Day18作业及默写
人狗大战 #!/usr/bin/env python # encoding: utf-8 # Author: MeiMeiLong <2559184081@qq.com> # Create ...
- day16正则表达式作业
1.匹配一篇英文文章的标题 类似 The Voice Of China #([A-Z][a-z]*)( [A-Z][a-z]*)* 2.匹配一个网址 #(https|http|ftp):\/\/[^\ ...
- 老男孩Python全栈第2期+课件笔记【高清完整92天整套视频教程】
点击了解更多Python课程>>> 老男孩Python全栈第2期+课件笔记[高清完整92天整套视频教程] 课程目录 ├─day01-python 全栈开发-基础篇 │ 01 pyth ...
- python27期day18:模块和包、作业。
1.模块和包: 我们今天来讲解一下模块和包,模块我们已经知道是什么东西了,我们现在来看看这个包是个什么? 我说的包可不是女同胞一看见就走不动的包,而是程序中一种组织文件的形式. 只要文件夹下含有__i ...
- python day 16作业
day18天作业及默写1,完成下列功能: 1.1创建一个人类Person,再类中创建3个静态变量(静态字段) animal = '高级动物' soup = '有灵魂' language = '语言' ...
- python 作业
Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与 ...
随机推荐
- jdbc+mysql常见报错总结
1.The server time zone value '�й���ʱ��' is unrecognized or represents more than one time zone. You ...
- Debian安装无线网卡Ralink RL5390驱动
惠普一体机用的无线网卡是Ralink的 RL5390,安装Debian10以后没有驱动,网上下载firmware-misc-nonfree_20190114-2_all.deb 和firmware-r ...
- thinkphp5集成GatewayWorker
Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架,而GatewayWorker则是基于Workerman开发的一个长连接框架,支持分布式部署,支持全局广播或者向任意客 ...
- netty实现消息中心(二)基于netty搭建一个聊天室
前言 上篇博文(netty实现消息中心(一)思路整理 )大概说了下netty websocket消息中心的设计思路,这篇文章主要说说简化版的netty聊天室代码实现,支持群聊和点对点聊天. 此demo ...
- 在Xcode11上开发“面向低于iOS13版本的App”时的一些注意点
相关知识: https://blog.csdn.net/BUG_delete/article/details/103699563 'AppDelegate' is only available in ...
- 01---eclipse使用
一.eclipse快捷键 1.alt+? 或 alt+/:自动补全代码或者提示代码,可用于main函数(main).输出函数(syso)等 2.ctrl+1:错误提示 3.ctrl+/:自动注释当前行 ...
- 数据库(mysql)基础操作
DDL(数据定义语言)------>建库,建表 DML(数据操作语言)------>对表中的记录操作增删改查 DQL(数据查询语言)------>对表中的查询操作 DCL(数据控制语 ...
- selenium(3)-针对鼠标的操作
背景 用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击.双击.点击鼠标右键.拖拽等等. 而selenium给我们提供了一个类来处理这类事件-----------Acti ...
- Jmeter工具环境搭建
Jmeter工具什么 1 多线程框架-支持多并发操作 2 用于对服务器模拟负载 3 支持web,数据库,FTP服务器系统的性能测试 4 开源,可二次定制开发 下载Java JDK 下载地址: http ...
- C语言副本机制
1.除了数组外,其他都有副本机制(包括结构体数组) 2.结构体作为参数具有副本机制,结构体返回值也有副本机制 . 3.函数的参数和返回值都有他的副本机制. #include<stdio.h> ...