装饰器
目的: 不改变原来代码的基础上. 给函数添加新功能
动态代理. 拦截器 通用装饰器的写法
def wrapper(fn):
def inner(*args, **kwargs):
'''之前'''
ret = fn(*args, **kwargs)
'''之后'''
return ret
return inner @wrapper
def login():
pass 带参数的装饰器
def wrapper_out(flag):
def wrapper(fn):
def inner(*args, **kwargs):
if flag:
print("问问老板, 行情怎么样")
else:
print("自己去")
ret = fn(*args, **kwargs)
print("亲人两行泪")
return ret
return inner
return wrapper @wrapper_out(False)
def yue():
print("约me?") @wrapper_out(True)
def chi():
print("吃饭去了") yue()
chi() *********************************************************************************************************************
Stack
栈, 先进后出
Queue
队列, 先进先出 class StackFullError(Exception):
pass class StackEmptyError(Exception):
pass class Stack:
def __init__(self, size):
self.size = size
self.lst = []
self.top = 0 # 下一个元素准备装的位置 def push(self, el):
# self.lst[self.top] = el # 报错
if self.top == self.size:
raise StackFullError('满了')
self.lst.insert(self.top, el)
self.top += 1 # 栈顶指针. 向上移动 def pop(self):
if self.top == 0:
raise StackEmptyError("空的")
self.top -= 1 # 先移动站定指针
data = self.lst[self.top]
del self.lst[self.top]
return data s = Stack(6)
s.push("1")
s.push("2")
s.push("3")
s.push("4")
s.push("5")
s.push("6") print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
print(s.pop())
*********************************************************************************************************************
asyncio是一个底层模块
他完成了几个任务的轮流检测io,并且在遇到io的时候能够及时在任务之间进行切换
然后达到使用单线程实现异步的方式
import asyncio
async def func():
print('111')
await asyncio.sleep(1)
print('222') loop=asyncio.get_event_loop()
a=loop.create_task(func()) #任务a
b=loop.create_task(func()) #任务b loop.run_until_complete(asyncio.wait([a,b]))
												

装饰器,栈 ,asyncio 代码的更多相关文章

  1. $如何用Python装饰器实现一个代码计时器?

    有时候我们很希望看到程序中某个函数或某个代码段的耗时情况,那么该如何办呢?本文用两种方式实现了代码计时器的功能,第一种方式是采用装饰器来实现,第二种方式采用上下文管理器实现. 其实计算代码的运行时间, ...

  2. Decorator - 利用装饰器武装前端代码

    历史 以前做后端时,接触过一点Spring,也是第一次了解DI.IOC等概念,面向切面编程,对于面向对象编程还不怎么熟练的情况下,整个人慌的一批,它的日志记录.数据库配置等都非常方便,不回侵入到业务代 ...

  3. java 装饰器模式实现代码

    目录 1.实现装饰器模式 1.1.公共接口 1.2.接口实现 1.3.装饰器 1.4.装饰构件 1.5.测试装饰器 上图展示的是io流中的一个装饰者模式的代码结构 1.实现装饰器模式 汽车厂生产汽车实 ...

  4. python 全栈开发,Day12(函数的有用信息,带参数的装饰器,多个装饰器装饰一个函数)

    函数的执行时,*打散.函数的定义时,*聚合. from functools import wraps def wrapper(f): # f = func1 @wraps(f) def inner(* ...

  5. 【代码学习】PYTHON装饰器

    一.装饰器 对原代码不修改的基础上完善代码 写代码要遵循开放封闭原则,虽然在这个原则是用的面向对象开发,但是也适用于函数式编程,简单来说,它规定已经实现的功能代码不允许被修改,但可以被扩展,即: 封闭 ...

  6. python -- 返回函数、匿名函数、装饰器

    返回函数 高阶函数的参数可以是函数,那么其返回值也可以是函数. 闭包 对于高阶函数,内部函数可以引用外部函数的参数和局部变量.当调用外部函数返回内部函数时,相关参数和变量都保存在返回的函数(即内部函数 ...

  7. python基础(8)-装饰器函数&进阶

    从小例子进入装饰器 统计一个函数执行耗时 原始版本 import time # time模块有提供时间相关函数 def do_something(): print("do_something ...

  8. 重学 Java 设计模式:实战装饰器模式(SSO单点登录功能扩展,增加拦截用户访问方法范围场景)

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 对于代码你有编程感觉吗 很多人写代码往往是没有编程感觉的,也就是除了可以把功能按照固 ...

  9. Python 元编程 - 装饰器

    Python 中提供了一个叫装饰器的特性,用于在不改变原始对象的情况下,增加新功能或行为. 这也属于 Python "元编程" 的一部分,在编译时一个对象去试图修改另一个对象的信息 ...

随机推荐

  1. ubuntu1604使用之旅——启动ssh系列

    ---恢复内容开始--- 1.安装ssh的client和server: sudo apt-get install openssh-server openssh-client 2.然后就要安装key: ...

  2. js解密

    import base64 src_code = 'Ly93eDIuc2luYWltZy5jbi9tdzYwMC8wMDc2QlNTNWx5MWcxaWlpOHNybThqMzB1MDE5NWRyMS ...

  3. 剑指Offer 8. 跳台阶 (递归)

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果). 题目地址 https://www.nowcoder.com/pract ...

  4. 自动化测试-3.selenium8种常用元素定位

    自动化只要掌握四步操作:获取元素,操作元素,获取返回结果,断言(返回结果与期望结果是否一致),最后自动出测试报告.本篇主要讲如何用firefox辅助工具进行元素定位. 元素定位在这四个环节中是至关重要 ...

  5. CentOS版Linux系统上运行ASP.NET应用

    一.安装: 1. 安装Apache Http Server yum install httpd2. 安装Mono yum install mono3. 安装Mono插件,用来处理ASP.NET请求 y ...

  6. python 前端 css

    CSS(Cascading Style Sheet,层叠样式表) 是一种用来表现HTML或XML等文件样式的计算机语言. 作用:是用来美化HTML标签的,相当于给页面化妆. 每个css 都是有两部分组 ...

  7. 使用selenium爬取网站动态数据

    处理页面动态加载的爬取 selenium selenium是python的一个第三方库,可以实现让浏览器完成自动化的操作,比如说点击按钮拖动滚轮等 环境搭建: 安装:pip install selen ...

  8. Python全栈之路----Python基础元素

    1.变量定义规则                 声明变量   name = " Alex Li"     其中,name是变量名(标识符),"Alex Li" ...

  9. Python全栈之路----文件处理

    文件操作分为读.写.修改,我们先从读开始 f = open(file = 'D:/工作日常/ABCD.txt',mode = 'r',encoding = 'utf-8') #file 是文件路径 m ...

  10. PTA——完全数

    PTA 7-45 找完数 网友“云上明月”的程序: #include<stdio.h> int isPerfect(int num); int main() { ; int maxFact ...