Python练习题

鳄鱼君

发表文章数:642

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python » Python练习题

四、装饰器简单实现

要求

  • 1.给定两个函数,一个作为原函数打印运行,另一个作为装饰器为原函数加上日志,
  • 2.严格按照装饰器的要求来做,不修改原函数,不修改原函数的调用方式
  • 3.结合前面所学知识–>高阶函数+嵌套函数=装饰器
import time
def timer(fun):
    def decorate(*args,**kwargs):
        start_time=time.time()
        fun() #fun is running
        end_time=time.time()
        print('the fun is running %s time..'%(end_time-start_time))
    return decorate #返回该函数的内存地址,方便调用
#官方建议调用方式
@timer #相当于fun=timer(fun)
def fun():
    time.sleep(1)
    print('the fun is running....')
fun()
#易于理解的调用方式
# fun=timer(fun)
# fun()
abs(-123) #返回绝对值
abs(1+2j) #参数如果是复数,就返回复数与它的共轭复数的乘积的平方根,就是 (a^2+b^2) 开根
globals()#返回当前程序中所有的变量
bin(10) #十进制转换为二进制
hex(10) #十进制转换为十六进制
oct(10) #十进制转换为八进制
pow(2,3) #2的3次方,
round(1.222,2) #保留小数点后2位
hash('zjj') #返回字符串或者数值对应的内存地址,哈希值
id('zjj') #获取对象的内存地址。
#打印10以内大于5的数
cc=filter(lambda  n:n>5, range(10)) #filter函数会按照相应的规定来过滤元素
for k in cc:
    print(k)
bb=map(lambda n:n*n,range(10))
for i in bb:
    print(i)

aa=[n*n for n in range(10)]
for s in aa:
    print(s)

rr=[lambda n:n*2 for n in range(10)]
for o in rr:
    print(o)

a=frozenset(set([1,2,3,4,5,6,7,7,8,9])) #冻结,变为不可变列表,我们不能在进行增减的操作

m={12:13,19:29,44:88,34:78}
print(sorted(m)) #默认是对key进行排序
print(sorted(m.items(),key=lambda x:x[1])) #这种方法是对value进行排序
print(vars())  #返回所有对象的属性名

name='zjj'
print(eval('name*7'))#用来执行一个字符串表达式,并返回表达式的值
#将字符串对应的名字的变量转换成该变量对应的值

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Python练习题》 发布于2019-12-01

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

7 + 2 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册