博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python练习笔记
阅读量:6150 次
发布时间:2019-06-21

本文共 1641 字,大约阅读时间需要 5 分钟。

python练习笔记,装饰器、定制方法生成特定的类

# -*- coding: utf-8 -*-def catch_exception(func):    def wrap(self, *args, **kw):        try:            return func(self, *args, **kw)        except Exception:            self.revive()            print('An Exception raised')    return wrapclass Test(object):    # 初始化    def __init__(self, path=''):        self.__slots__ = ('v1','v2','a')        self.__a = 123        self.__b = 456        self.a = 1        self.__path = path    # 使用len()    def __len__(self):        return 100    # 使用迭代    def __iter__(self):        # return iter([1,2,3,4])        return self    def __next__(self):        if self.a < 100:            self.a *= 2            return self.a        else:            raise StopIteration()    # 使用数字下表直接访问    def __getitem__(self, n):        for i in range(n):            self.a *= 2        return self.a    # 属性不存在时调用,返回属性/函数    def __getattr__(self, path):        # if attr == 'tn':        #     return 'tttttt'        return Test('%s/%s' % (self.__path, path))    def get_path(self):        return self.__path    def __call__(self, *args, **kw):        # for x in args:        #     print(x)        # for k,v in kw.items():        #     print('%s = %s' % (k,v))        print(args)        print(kw)        return '调用自己'    # 修饰器    @catch_exception    def sum(self):        return self.__a + self.__b    def revive(self):        print('revive from Exception')if __name__ == '__main__':    t = Test()    for i in Test():        print(i)    print(t.sum(), t[10])    print(t.api.football.csl.s2018.get_path())    print(t(123, 'abc',no=1,name='bob'))

 

转载于:https://www.cnblogs.com/wqiwen/p/9724994.html

你可能感兴趣的文章
User implements HttpSessionBindingListener
查看>>
eclipse的maven、Scala环境搭建
查看>>
架构师之路(一)- 什么是软件架构
查看>>
USACO 土地购买
查看>>
【原创】远景能源面试--一面
查看>>
B1010.一元多项式求导(25)
查看>>
10、程序员和编译器之间的关系
查看>>
配置 RAILS FOR JRUBY1.7.4
查看>>
AndroidStudio中导入SlidingMenu报错解决方案
查看>>
修改GRUB2背景图片
查看>>
Ajax异步
查看>>
好记性不如烂笔杆-android学习笔记<十六> switcher和gallery
查看>>
JAVA GC
查看>>
3springboot:springboot配置文件(外部配置加载顺序、自动配置原理,@Conditional)
查看>>
前端第七天
查看>>
图解SSH原理及两种登录方法
查看>>
【总结整理】JQuery基础学习---样式篇
查看>>
查询个人站点的文章、分类和标签查询
查看>>
基础知识:数字、字符串、列表 的类型及内置方法
查看>>
JSP的隐式对象
查看>>