python3_装饰器_异常处理

装饰器:

def auth(func):
    def wrapper(name):                     如果函数带参数,要加在这里
        user=raw_input("input passwd:").strip()
        if user==‘test‘:
            print "welcome login"
            func(name)              如果函数带参数,要加在这里
        else:
            print "auth is denied"
    return wrapper
@auth
def task(name):                                 带参数的函数
    print "do something"

task(name)

异常处理:
try:
    name="kim"
    name_list=[‘kim‘,‘deng‘,‘min‘]
    print Name
#    print name_list[4]
except NameError,err:   
    print err
print ‘--do sth else--‘

except Exception,e:         可以抓住所有的异常
    print ‘‘

else:                  没有抓住异常则else
    print ‘‘
finally:                无论有没有异常都会执行
    print ‘‘

手动触发异常:
class myException(Exception):
    pass
try:
    code
    raise myException
except ......
时间: 2024-10-06 00:15:56

python3_装饰器_异常处理的相关文章

python_装饰器_语法糖

什么是高阶函数? -- 把函数名当做参数传给另外一个函数,在另外一个函数中通过参数调用执行 #!/usr/bin/python3 __author__ = 'beimenchuixue' __blog__ = 'http://www.cnblogs.com/2bjiujiu/' def func_x(x): return x * 2 def func_y(y): return y * 3 def func_z(x, y): # 等价于 return func_x(5) + func_y(3) r

python3.5-day5_迭代器_生成器_装饰器_模块

笔者QQ 360212316 迭代器&生成器 生成器: 一个函数调用返回一个迭代器,那这个函数叫做生成器,如果函数中包含yield语法,那么这个函数就会变成生成器 生成器的特点: 1.生成器必须从前往后一次访问,不能跳着取 2.生成器只记录访问的数据,其他数据释放 3.生成器的作用就是预想可能用到那么多的数据 生成器的两种方式: 方式一: data = (x * 2 for x in range(5)) # 获取结果的两种方式 print(data.__next__()) print(next(

python_20_装饰器_高阶函数的使用_01

登陆验证代码. 1 #用户验证功能,不修改源代码,使用装饰器. 2 user_dic={'username':None,'login':False} #定义全局变量 3 4 def auth_func(func): 5 def wrapper(*args,**kwargs): 6 if user_dic['username'] and user_dic['login']: 7 res = func(*args, **kwargs) 8 return res 9 user_name = input

property装饰器_继承

property装饰器 一:装饰器 装饰器是在不修改被装饰对象源代码以及调用方式的前提下为被装饰对象添加 # 新功能的可调用对象 # print(property) property是一个装饰器,是用来绑定给对象的方法伪造成一个数据属性 二:案例 """ 成人的BMI数值: 过轻:低于18.5 正常:18.5-23.9 过重:24-27 肥胖:28-32 非常肥胖, 高于32 体质指数(BMI)=体重(kg)÷身高^2(m) EX:70kg÷(1.75×1.75)=22.86

函数、装饰器、迭代器、内置方法

函数是什么: 函数是指将一组语句的集合,通过一个名字(函数名)封装起来,想要执行这个函数,只需要调用具体函数名即可(函数名+()) 特征: 1.减少重复代码 2.使程序变得可扩展 3.是程序变得易维护 语法定义: def sayhi(): #函数名 print('Hello!') sayhi() #调用函数 带参数的函数 a,b = 5,8 c = a**b print(c) #用函数实现以上代码 def calc(x,y):#x,y为形参 res = x**y return res #将函数执

<04day>_函数嵌套--闭包函数--装饰器--迭代器--生成器

一.函数的嵌套定义 1.python函数支持嵌套 def f1(): #f1函数的定义 def f2(): #f2函数的定义 print('from f2') def f3(): #f3函数的定义 print('from f3') f2() f1() 嵌套函数--运行结果说明: 1首先调用f1()结果,f1函数为空.担保函f2函数,f2函数有内容打印并且有调用,f2函数包含f3函数,但f3函数无调用. 运行结果: 列子:多个数据之间的大小比较. #!/usr/bin/python # -*- c

Python成长之路_装饰器

一.初入装饰器 1.首先呢我们有这么一段代码,这段代码假如是N个业务部门的函数 1 def f1(aaa): 2 print('我是F1业务') 3 if aaa == 'f1': 4 return 'ok' 5 6 def f2(aaa): 7 print('我是F2业务') 8 if aaa == 'f2': 9 return 'ok' 业务代码 这里呢也就是当我们调用上面的函数的时候,传入值给aaa,当aaa的值等于f1或者f2就返回ok 2.公司有N个业务部门,1个基础平台部门,基础平台

Python_装饰器,生成器_干货哦

import timeimport calendarimport os # 时间格式熟悉"""# 格式化成2016-03-20 11:45:39形式time01 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())print()# 格式化成Sat Mar 28 22:24:24 2016形式print(time.strftime("%a %b %d %H:%M:%S %Y", ti

装饰器&偏函数与作用域与异常处理与文件读写

装饰器 概念:是一个闭包,把一个函数当做参数返回一个替代版的函数,本质上就是一个返回函数的函数 简单的装饰器 def func1(): print("sunck is a good man") def outer(func): def inner(): print("*** ** * * ***") func() return inner #f是函数func1的加强版本 f = outer(func1) f() 复杂一点的装饰器 def say(name): pri