模拟数值类型

一个简单的二维向量类


上述实例包含了一个Vector类的实现,其包含了__repr__, __abs__, __add__, 以及__mul__四个特殊方法,下面介绍一下特殊方法:

如何使用特殊方法

特殊方法的存在是为了被Python解释器调用的,你自己并不需要调用它们,也就是说没有my_object.__len__()这种写法,而应该使用len(my_object)。在执行len(my_object)的时候,如果my_object是一个自定义类的对象,那么Python会自己去调用其中由你实现的__len__方法。

在上述实例中,我们在__repr__的实现中,用到了%r来获取对象各个属性的标准字符串表示形式,这是个好习惯,它暗示了一个关键:Vector(1,2)和Vector('1','2')是不一样的,因为向量对象的构造函数只接受数值,不接受字符串。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容