oldboy s21day14装饰器模块和面试题】的更多相关文章

# 1.为函数写一个装饰器,在函数执行之后输入 after"""def wrapper(arg): def inner(*args): arg() print('after') return inner @wrapperdef func(): print(123) func()""" # 2.为函数写一个装饰器,把函数的返回值 +100 然后再返回.'''def wrapper(arg): def inner(*args): v = arg()…
#!/usr/bin/env python# -*- coding:utf-8 -*- # 2.请为 func 函数编写一个装饰器,添加上装饰器后可以实现:执行func时,先输入"before",然后再执行func函数内部代码."""def di(arg): def inner(): print('before') v = arg() return v return inner @didef func(): return 100 + 200 val = f…
# -*-coding=utf-8 -*-#实现一个函数执行后计算执行时间的功能 __author__ = 'piay' import time, functools def foo(): ''' 定义一个普通函数 :return: ''' print 'this is foo' foo() ''' 这里如果我们需要查看函数执行时间,修改为: ''' def foo1(): start_time = time.clock() print 'this is foo1' end_time = tim…
本节内容 上节内容回顾(函数) 装饰器 模块 包 1.上节内容回顾(函数) 函数 1.为什么要用函数? 使用函数之模块化程序设计,定义一个函数就相当于定义了一个工具,需要用的话直接拿过来调用.不使用模块化程序设计的缺点: 体系结构不清晰,可读写差 可扩展性差 程序冗长 2.定义函数分三种 # -*- coding: UTF-8 -*- #blog:http://www.cnblogs.com/linux-chenyang/ # #1.无参函数 def foo(): print('in the f…
目录: 函数示例 装饰器 模块 内置函数 一.函数示例: 1.为什么使用函数之模块化程序设计: 不使用模块程序设计的缺点: 1.体系结构不清晰,可主读性差: 2.可扩展性差: 3.程序冗长: 2.定义函数: def fun(args): '描述信息' 函数体 return 返回值 定义函数的三种形式: 无参函数 def foo(): print('in the foo') foo() 有参函数: def bar(x,y): print('in the bar') bar(1,2) 空函数: de…
目录 函数补充进阶 函数对象 函数的嵌套 名称空间与作用域 闭包函数 函数之装饰器 函数之可迭代对象 函数之迭代器 函数之生成器 面向过程的程序设计思想 一.函数进阶之函数对象 1. 函数对象 秉承着一切皆对象的理念,我们再次回头来看函数(function).函数也是一个对象,具有属性(可以使用dir()查询).作为对象,它还可以赋值给给一个变量.可以作为元素添加到集合对象中.可作为参数值传递给其它函数,还可以当做函数的返回值,这些特性就是第一类对象所特有的. 函数身为一个对象,拥有对象模型的三…
最近新需求来了,要给系统增加几个资源权限.尽量减少代码的改动和程序的复杂程度.所以还是使用装饰器比较科学 之前用了一些登录验证的现成装饰器模块.然后仿写一些用户管理部分的权限装饰器.比如下面这种 def permission_required(permission): def decorator(f): @wraps(f) def decorated_function(*args, **kwargs): if not current_user.can(permission): abort(403…
day13 装饰器与语法糖 一.装饰器 1.什么是装饰器 装饰器就是装饰别人的工具,具体是指为被装饰者添加新功能 装饰器->函数 被装饰者->函数 2.为何要用装饰器 装饰器的核心思想:(开放封闭原则) 在不修改被装饰者源代码以及调用方式的前提下,为被装饰者添加新功能 3.如何实现装饰器 可以用闭包函数去实现装饰器 被装饰者 import time def index(): print('welcome to index page') time.sleep(3) index() 方案一:问题-…
#!/usr/bin/env python# -*- coding:utf-8 -*- # 1.sys.path.append("/root/mods")的作用?"""增加导入模块的查找路径""" # 2.字符串如何进行反转?'''[::-1]''' # 3.不用中间变量交换a和b的值.'''a = 1b = 2a, b = b, aprint(a, b)''' # 4.*args和**kwargs这俩参数是什么意思?我们为什…
装饰器(二)&模块 #普通装饰器基本格式 def wrapper(func): def inner(): pass return func() return inner def func(): pass func = wrapper(func) func() #带参数装饰器基本格式 def w(counter): def wrapper(func): def inner(*args,**keargs): lis = [] for i in range(0,counter): a=func(*ar…