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 wrap class 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'))

python练习笔记的更多相关文章

  1. Web Scraping with Python读书笔记及思考

    Web Scraping with Python读书笔记 标签(空格分隔): web scraping ,python 做数据抓取一定一定要明确:抓取\解析数据不是目的,目的是对数据的利用 一般的数据 ...

  2. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  3. VS2013中Python学习笔记[Django Web的第一个网页]

    前言 前面我简单介绍了Python的Hello World.看到有人问我搞搞Python的Web,一时兴起,就来试试看. 第一篇 VS2013中Python学习笔记[环境搭建] 简单介绍Python环 ...

  4. python学习笔记之module && package

    个人总结: import module,module就是文件名,导入那个python文件 import package,package就是一个文件夹,导入的文件夹下有一个__init__.py的文件, ...

  5. python datetime笔记

    python datetime笔记 http://mint-green.diandian.com/post/2011-09-09/4892024 获取当前时间,并通过字符串输出. 格式为:%Y-%m- ...

  6. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  7. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  8. python学习笔记--Django入门0 安装dangjo

    经过这几天的折腾,经历了Django的各种报错,翻译的内容虽然不错,但是与实际的版本有差别,会出现各种奇葩的错误.现在终于找到了解决方法:查看英文原版内容:http://djangobook.com/ ...

  9. python学习笔记(一)元组,序列,字典

    python学习笔记(一)元组,序列,字典

  10. python自学笔记

    python自学笔记 python自学笔记 1.输出 2.输入 3.零碎 4.数据结构 4.1 list 类比于java中的数组 4.2 tuple 元祖 5.条件判断和循环 5.1 条件判断 5.2 ...

随机推荐

  1. SourceTree Win10 安装不成功解决过程记录

    简介 SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工作流程,对于不熟悉 git 命令的初学者来说,可以通过 SourceTree ...

  2. 【Leetcode】【Easy】Remove Nth Node From End of List

    Given a linked list, remove the nth node from the end of list and return its head. For example, Give ...

  3. HCNA-RIP定时器

    1.拓扑图 2. 1.RIP有哪些定时器?三种:更新定时器.老化定时器.垃圾回收定时器 2.RIP的定时器有哪些作用?更新定时器(30s):运行RIP的路由器会以30s为周期,向邻居发送RIP路由.老 ...

  4. June 14th 2017 Week 24th Wednesday

    Love looks not with the eyes, but with the mind. 爱,不在眼里,而在心中. Staring in her eyes and you will find ...

  5. C# 调用 SQL server 初探

    相信不少人都和我一样: 1.学过数据库原理接触过SQL Server,做过一套卷子外加一个数据库设计作业: 2.学过C# 但从来还没在程序里用到过数据库(哈哈,新手躺枪) 这也是我第一次在C#里用数据 ...

  6. C语言 Include指令(引用头文件)

    #include "one.h" #include "two.h" int main(int argc, const char * argv[]) { one( ...

  7. oc 无中生有添加协议(使已有函数符合协议)

    class_addProtocol([UIButton class],@protocol(UIButtonExport)); @protocol UIButtonExport <JSExport ...

  8. POJ 2704 Pascal's Travels 【DFS记忆化搜索】

    题目传送门:http://poj.org/problem?id=2704 Pascal's Travels Time Limit: 1000MS   Memory Limit: 65536K Tota ...

  9. 使用strtus2框架的json插件来完成ajax操作

    ------------------------------------------------------------------------------jsp------------------- ...

  10. Window下搭建foundation apps环境

    Window下搭建foundation apps环境 框架:AngularJS.Foundation, 构建工具:Gulp, 开发环境:node.js. 操作系统:windows (一)环境准备 1 ...