使用装饰器捕捉错误

# coding=utf-8import  traceback
def deco(func):
    def wrapper(*args,**kwargs):
        try:
            return func(*args,**kwargs)
        except:
            print  ‘调用%s函数时出错,错误原因是:%s \n%s‘%(func.__name__,‘*‘*50,traceback.format_exc())
    return  wrapper

@deco
def divi(a,b):
    return a/b

result=divi(3,2)
print ‘结果是‘,result

result=divi(3,0)
print ‘结果是‘,result

这样做就能不做任何函数的错误了,而不必在每个函数里面去try except了。

时间: 2024-11-10 13:50:32

使用装饰器捕捉错误的相关文章

python装饰器高级用法

1.装饰类 下面,直接来看代码是如何实现装饰类的: def decorator(aClass): class newClass: def __init__(self, age): self.total_display = 0 self.wrapped = aClass(age) def display(self): self.total_display += 1 print("total display", self.total_display) self.wrapped.displa

编写装饰器实现python请求错误重试功能

在做接口自动化测试的时候,总会遇到,因连接超时等错误导致,接口脚本失败. 官方给出的方法: max_retries=5 出错重试5次注意的是,这个只对DNS,连接错误进行重试. from requests.adapters import HTTPAdapter s = requests.Session() s.mount('http://',HTTPAdapter(max_retries=5)) s.mount('https://',HTTPAdapter(max_retries=5)) s.g

ZMAN的学习笔记之Python篇:装饰器

年前工作事务比较繁琐,我只能用零碎的时间继续学习Python,决定开一个系列的博文,作为自己深入学习Python的记录吧.名字也取好了,就叫<ZMAN的学习笔记之Python篇>~开篇是关于装饰器的,春节假期码的字哈哈~就让我们开始吧! 本文的例子都是自己想的,如果不是很合适,请大家提出宝贵意见哈~谢谢啦! 一.为什么要用“装饰器” 比如我们写了如下一段代码: # 打印0~99 def func(): for i in range(100): print(i) 我们想要监测执行这个函数花费了多

Python 装饰器的总结

先来了解几个定义: 1,函数 在python中,函数通过def关键字.函数名和可选的参数列表定义.通过return关键字返回值.我们举例来说明如何定义和调用一个简单的函数: ? 1 2 3 4 5 6 7 #coding:UTF8 def foo():      return 1 print foo() 1 方法体(当然多行也是一样的)是必须的,通过缩进来表示,在方法名的后面加上双括号()就能够调用函数 2,作用域 在Python中,函数会创建一个新的作用域. Python开发者可能会说函数有自

[译] 12步轻松搞定python装饰器 - 简书

body { font-family: Microsoft YaHei UI,"Microsoft YaHei", Georgia,Helvetica,Arial,sans-serif,宋体, PMingLiU,serif; font-size: 10.5pt; line-height: 1.5; } html, body { } h1 { font-size:1.5em; font-weight:bold; } h2 { font-size:1.4em; font-weight:bo

12步轻松搞定python装饰器

12步轻松搞定python装饰器 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定python的装饰器,也许因为装饰器确实很难懂.搞定装饰器需要你了解一些函数式编程的概念,当然还有理解在python中定义和调用函数相关语法的一些特点. 我没法让装饰器变得简单,但是通过一步步的剖析,我也许能够让你在理解装饰器的时候更自信一点.因为装饰器很复杂,这篇文章将会很长(自己都说很长,还敢这么多废话blablabla...前戏就不继续翻译直接省略了) 1. 函数 在python中,函数通

深入浅出 Python 装饰器:16 步轻松搞定 Python 装饰器

Python的装饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都很相似--都是想要对一个已有的模块做一些"修饰工作",所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去.但是OO的Decorator简直就是一场恶梦,不信你就去看看wikipedia上的词条

Python之路-python(装饰器、生成器、迭代器、Json &amp; pickle 数据序列化、软件目录结构规范)

装饰器: 首先来认识一下python函数, 定义:本质是函数(功能是装饰其它函数),为其它函数添加附件功能        原则:        1.不能修改被装饰的函数的源代码.        2.不能修改被装饰的函数的调用方式. 1 def test(): 2 print('test') 3 print(test ) #表示是函数 4 test() #表示执行foo函数 <function test at 0x00595660>#表示的是函数的内存地址test#函数test执行结果 简单的装

Python 装饰器的总结(二)

接着上一篇 7,函数是Python世界中的一级类对象 在Python里函数和其他东西一样都是对象 1 2 3 4 5 6 7 8 9 #coding:UTF8 print issubclass(int, object)  True def foo():      pass print foo.__class__ # 1 <type 'function'> print issubclass(foo.__class__, object) True 函数在Python里就是对象,和其他一样,在Pyt