摘要: 命名空间字典 我们学到了模块的命名空间实际上是以字典的形式实现的,并且可以由内置属性__dict__显示这一点。类和实例对象也是如此:属性点号运算其实内部就是字典的索引运算,而属性继承其实就是搜索连结的字典而已。实际上,实例和类对象就是Python中带有链接的字典而已。Python揭露这些字典,还有 阅读全文
posted @ 2017-08-08 16:32 耳木东木2 阅读(235) 评论(0) 推荐(0)
摘要: __call__拦截调用 当实例调用时,使用__call__方法。不,这不是循环定义:如果定义了,Python就会为实例应用函数调用表达式运行__call__方法。这样可以让类实例的外观和用法类似于函数。 运行结果: 在这个例子中,__call__似乎没什么特别的意义。下面这个简单的方法也能提供类似 阅读全文
posted @ 2017-08-08 13:40 耳木东木2 阅读(233) 评论(0) 推荐(0)
摘要: __radd__处理右侧加法 从严格意义上来讲,前边例子中出现的__add__方法并不支持+运算符右侧使用实例对象。要实现这类表达式,而支持可互换的运算符,可以一并编写__radd__方法。+右侧的对象是类实例,而左边对象不是类实例时,Python才会调用__radd__。所有情况下,则由左侧对象调 阅读全文
posted @ 2017-08-08 13:31 耳木东木2 阅读(1397) 评论(0) 推荐(0)
摘要: __repr_和__str__会返回字符串表达形式 下一个例子是已经见过的init构造方法和add重载方法,本例也会定义返回实例的字符串表达形式的__repr__方法。字符串格式把self.data对象转换为字符串。如果定义了的话,当类的实例打印或转换成字符申时,__repr__(或其近亲__str 阅读全文
posted @ 2017-08-08 13:05 耳木东木2 阅读(219) 评论(0) 推荐(0)
摘要: __getattr__和__setattr__捕捉属性的一个引用 __getattr__方法是拦截属性点号运算。更确切地说,当通过对未定义(不存在)属性名称和实例进行点号运算时,就会用属性名称为字符串调用这个方祛。如果Python可通过其继承树搜索流程找到这个属性,该方法就不会被调用.因为有这种情况 阅读全文
posted @ 2017-08-08 10:38 耳木东木2 阅读(306) 评论(0) 推荐(0)
摘要: 1、迭代器基于下面两个个方法: (1)__next__ 返回容器的下一个项目(2)__iter__ 返回迭代器本身 2、当序列遍历完时,将抛出StopIteration异常,所以通过捕获这个异常来停止循环 下面是自定义迭代器的示例代码: 运行结果: 用户定义的迭代器 如今,Python中所有的迭代坏 阅读全文
posted @ 2017-08-08 10:13 耳木东木2 阅读(162) 评论(0) 推荐(0)
摘要: getitem一拦截索引运算 __getitem__方法拦截实例的索引运算。当实例x出现在x[i]这样的索引运算中时,Python会调用这个实例继承的__getitem__方法(如果有的话),把x作为第一个参数传递,并且方括号内的索引值传给第二个参数。例如,下面的类将返回索引值的平方。 运行结果: 阅读全文
posted @ 2017-08-08 08:32 耳木东木2 阅读(197) 评论(0) 推荐(0)
摘要: 类接口技术 扩展只是一种同超类接口的方式。下面所展示的sPecial'ze.Py文件定义了多个类,示范了一些常用技巧。Super 定义一个method函数以及一个delegate函数.Inheritor没有提供任何新的变量名,因此会获得Super中定义的一切内容。Replacer 用自己的版本授盖S 阅读全文
posted @ 2017-08-08 07:26 耳木东木2 阅读(225) 评论(0) 推荐(0)
摘要: 类可以截获Python运算符 现在,让我们来看类和模块的第三个主要差别: 运算符重载。简而言之,运算符重载就是让用类写成的对象,可截获并响应用在内置类型上的运算:加法、切片、打印和点号运算等。这只是自动分发机制:表达式和其他内置运算流程要经过类的实现来控制。这里也和模块没有什么相似之处:’模块可以实 阅读全文
posted @ 2017-08-08 06:08 耳木东木2 阅读(279) 评论(0) 推荐(0)
摘要: 除了#注释外,Python也支持可自动附加在对象上的文档,而且在运行时还可保存查看。从语法上来说,这类注释是写成字符串,放在模块文档、函数以及类语句的顶端。就在任何可执行程序代码前(#注释在其前也没问题)。Python会自动封装这个字符串,也就是成为所谓的文档字符串,使其成为相应对象的__doc__ 阅读全文
posted @ 2017-08-07 14:50 耳木东木2 阅读(205) 评论(0) 推荐(0)