返回顶部
摘要: 优先级:类属性> 数据描述符(必有set)>实例属性>非数据描述符(只有get)>找不到 描述符的应用: 众所周知,Python是弱类型的语言,即参数的赋值没有类型的限制,下面通过描述符的机制实现类型限制功能。 改进一: 终极版: 这就是描述符的应用! 阅读全文
posted @ 2019-08-06 23:03 Zcb0812 阅读(178) 评论(0) 推荐(0)
摘要: 下面,让程序产生异常: 自定义用于打开文件的上下文管理器: 阅读全文
posted @ 2019-08-06 22:28 Zcb0812 阅读(110) 评论(0) 推荐(0)
摘要: 一:析构方法__del__(): 二:"对象()" 调用的方法:__call__() 阅读全文
posted @ 2019-08-06 19:11 Zcb0812 阅读(118) 评论(0) 推荐(0)
摘要: "模块的注释" class DemoClass: "类的注释" pass if __name__ == "__main__": import sys module = sys.modules[__name__] #获取当前模块对象 print(module.__doc__) demo = DemoClass() print(DemoC... 阅读全文
posted @ 2019-08-06 18:47 Zcb0812 阅读(81) 评论(0) 推荐(0)
摘要: 为何使用__slots__ :字典会占用大量内存, 如果一个类属性很少,但是它有很多实例对象,为了节省内存,可以使用__slots__ 来代替__dict__ 当定义__slots__ 后,__slots__ 就会为实例使用一种更加紧凑的内部表示,这时就不会为每个实例都创建一个字典了。 __slot 阅读全文
posted @ 2019-08-06 18:24 Zcb0812 阅读(127) 评论(0) 推荐(0)
摘要: 一: __str__() 和 __repr__() 保留方法: __repr__() 保留方法是个备胎: 还有的是,这两个保留方法都要返回字符串类型。 二:自定制格式化方式__format__(): format() 实际上调的方法是__format__() 阅读全文
posted @ 2019-08-06 18:08 Zcb0812 阅读(141) 评论(0) 推荐(0)
摘要: 前面说过attr系列方法 上面调用属性都是用的点,下面换种方式看看: 阅读全文
posted @ 2019-08-06 17:12 Zcb0812 阅读(162) 评论(0) 推荐(0)
摘要: 需求:通过继承来构建自己的数据类型:(例子:列表中只能添加字符串) 包装的扩展: 下面通过包装实现 权限管理,给增加时间,过滤敏感词 阅读全文
posted @ 2019-08-06 15:54 Zcb0812 阅读(136) 评论(0) 推荐(0)
摘要: 通过getattr setattr delattr 来控制了属性的增删改查: 下面是__getattr__() 和__getattribute__() 的区别: 文件(模块)也是个对象,所以他们也可以用反射(自省):注: test.py 和testtest.py 两个文件在同一目录下: 现在有个问题 阅读全文
posted @ 2019-08-06 15:04 Zcb0812 阅读(133) 评论(0) 推荐(0)