一個(gè)簡(jiǎn)單的二維向量類
上述實(shí)例包含了一個(gè)Vector類的實(shí)現(xiàn)拯田,其包含了__repr__, __abs__, __add__, 以及__mul__四個(gè)特殊方法旬昭,下面介紹一下特殊方法:
如何使用特殊方法
特殊方法的存在是為了被Python解釋器調(diào)用的著恩,你自己并不需要調(diào)用它們题山,也就是說沒有my_object.__len__()這種寫法吩案,而應(yīng)該使用len(my_object)秀又。在執(zhí)行l(wèi)en(my_object)的時(shí)候,如果my_object是一個(gè)自定義類的對(duì)象拼苍,那么Python會(huì)自己去調(diào)用其中由你實(shí)現(xiàn)的__len__方法笑诅。
在上述實(shí)例中,我們?cè)赺_repr__的實(shí)現(xiàn)中疮鲫,用到了%r來獲取對(duì)象各個(gè)屬性的標(biāo)準(zhǔn)字符串表示形式吆你,這是個(gè)好習(xí)慣,它暗示了一個(gè)關(guān)鍵:Vector(1,2)和Vector('1','2')是不一樣的俊犯,因?yàn)橄蛄繉?duì)象的構(gòu)造函數(shù)只接受數(shù)值妇多,不接受字符串。