python3基础09(装饰器的使用)

#!/usr/bin/env python# -*- coding:utf-8 -*-

import time

#方式1class People:

def __init__(self, name, age):        self.__name = name        self.__age = age

def get_age1(self):        return self.__age

def set_age2(self, age):        if isinstance(age, int):            self.__age = age        else:            raise ValueError

def del_age3(self):        print("删除年龄数据!")

# 核心在这句    age1 = property(get_age1, set_age2, del_age3, "年龄")

obj = People("jack", 18)print(obj.age1)obj.age = 19print("obj.age:  ", obj.age)del obj.age

#方式2def deco(f):    def wrapper():        start_time = time.time()        f()        end_time = time.time()        execution_time = (end_time - start_time)*1000        print("time is %d ms" %execution_time )    return wrapper

@decodef f():    print("hello")    time.sleep(1)    print("world")

if __name__ == ‘__main__‘:    f()

原文地址:https://www.cnblogs.com/NiceTime/p/10085350.html

时间: 2024-10-10 22:30:17

python3基础09(装饰器的使用)的相关文章

python3【基础】-装饰器

要理解充分理解python的装饰器,有充分理解下述三个知识点为前提: python作用域规则 函数即对象 闭包 一.python作用域规则: 首先介绍python中的作用域规则.python的作用域规则遵循LEGB规则,这四个字母是什么意思呢?下面将逐一介绍: L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间 G:global全局作用域 B:build-in内置作用域 上述四个作用域的优先级表现为L>E>G>B,具体在代码中是什么意思呢?我们举例来说明. 1.

python基础 之 装饰器详解

装饰器的语法以@开头,接着是装饰器函数的名字.可选参数. 紧跟装饰器声明的是被装饰的函数和被装饰的函数的可选参数,如下: @decorator(dec_opt_args) def func(func_args):   .... 其实总体说起来,装饰器其实也就是一个函数,一个用来包装函数的函数,装饰器在函数声明完成的时候被调用,调用之后声明的函数被换成一个被装饰器装饰过后的函数. 如: def deco(func):    ...    return func @deco def foo():  

【Python基础】装饰器的解释和用法

装饰器的用法比较简单,但是理解装饰器的原理还是比较复杂的,考虑到接下来的爬虫框架中很多用到装饰器的地方,我们先来讲解一下. 函数 我们定义了一个函数,没有什么具体操作,只是返回一个固定值 请注意一下缩进 def sample(): return 1 print(sample()) 作用域 函数内部的变量和函数外的变量是不同的 我们看一下下面的例子,locals()和globals()方法会得到局部变量和全局变量 我们可以在函数中调用全局变量,但是无法在函数中改变全局变量的值 global_str

python入门基础-函数装饰器的理解

1.装饰器 # 知乎某大神是这么比喻装饰器的:内裤可以用来遮羞,但是到了冬天他就没有办法为我们御寒,聪明的人于是发明了长裤,有了长裤后宝宝再也不冷了, # 装饰器就像我们这里说的长裤,在不影响内裤作用的前提下,给我们的身子提供了保暖的功效. # # 大神是将程序中原本的函数比喻成内裤,而装饰器比喻成了长裤,这样在寒冬里它们结合一起使用就给所有人带来了温暖. # # 装饰器本质上是一个python函数,它可以让其它函数在不改动代码的情况下增加额外的功能,并且装饰器的返回值也是一个函数对象. # 在

python3 如何给装饰器传递参数

[引子] 之前写过一篇文章用来讲解装饰器(https://www.cnblogs.com/JiangLe/p/9309330.html) .那篇文章的定位是入门级的 所以也就没有讲过多的高级主题,决定在这里讲一下如果为装饰器传递参数 [目标] 我们有两个函数"add_fun"."add" 其中"add_fun"已经过时.如果用户有调用这个函数的话就提示它"add_fun"已经过时并且引导 它去调用"add"

Python基础【装饰器】

装饰器: 装饰器:用来修改函数功能的函数 可以在不改变原函数的基础上添加功能实现装饰器的方法:从函数中返回函数,将原函数作为一个参数传给另一个函数 代码:装饰器pro_print在函数执行前输出提示"welcome to class" def pro_print(fun): # 装饰器函数 def wrapper(*args,**kwargs): # 接收各种类型的不定长参数 print("welcome to class") fun() return wrappe

Python基础15_装饰器

一. 装饰器 开闭原则: 软件设计的原则之一, 又称为开放封闭原则. 开放: 对功能扩展开放 封闭: 对修改代码封闭 装饰器: 在目标函数前或后插入一段新的代码, 不改变目标函数的代码 可以给目标函数传参, 拿到目标函数的返回值 python里面的动态代理 在不破坏目标函数和目标函数调用的基础上给函数添加新的功能 通用语法: def wrapper(fn):                        # fn 是目标函数 def inner(*args, **kwargs):        

Python基础day-8[装饰器补充,迭代器(未完)]

wraps模块: 让函数保留原来的说明信息. 在闭包函数上面 @wraps 可以把原代码的解释,引用到装饰器中,让用户彻底无法感知装饰器的存在 使用 func.__doc__ 和 print(help(func))来查看函数的注释信息 from functools import wraps import time def coutime(func): @wraps(func) #调用wraps模块 def wrapper(*args,**kwargs): # 'a1231231231231232

1.16 Python基础知识 - 装饰器

Python中的装饰器就是函数,作用就是包装其他函数,为他们起到修饰作用.在不修改源代码的情况下,为这些函数额外添加一些功能,像日志记录,性能测试等.一个函数可以使用多个装饰器,产生的结果与装饰器的位置顺序有关. 装饰器基本形式: @装饰器1 def 函数1: 函数体 相当于:==> 函数1 = 装饰器1(函数1) 装饰器特点: 1.不修改源代码的调用方式 2.不修改源代码内容 3.装饰器有高阶函数与递归函数相融合的特点 多个装饰器修饰,示例: @foo @spam def bar():pass

python3学习之装饰器

#定义装饰器,outer参数是函数,返回也是函数 #作用:在函数执行前和执行后分别附加额外功能 def  outer(func):     def  inner(*args, **kwargs):         print("log")         func(*args, **kwargs)         print("Don't back")         # return "r"     return inner @outer de