采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
请问为什么在main_vector里vec = Vector([5,2]), vec1 = Vector([1,2]), print(__add__(vec, vec2))是不对的呢
因为 __add__不是一个函数,而是定义在Vector下的一个对象方法,需要基于对象调用。
这样是正确的。
print(vec.__add__(vec2))
在这点上,请仔细体会你已经学习过的面向对象语言和Python语言的异同。其实在面向对象的基本概念上是一致的,只不过语法有区别:)
但是__add__作为一个魔法方法,它的意义就是重载加号,所以不会有人用上面的写法。下面的写法是标准的:
print(vec + vec2)
加油!
谢谢老师,但是我还有个问题,要怎样才能知道+重载了add,看手册可以查出来吗?
是的哦。这是Python语法的一部分哦。这类方法称为魔法方法,通常介绍Python语法的书籍肯定会提及,也可以在网上搜索“魔法方法”进行学习。这类方法的名称如此奇怪,前后使用两个下划线,就是为了提醒你:注意,注意,这是一个特殊的,被Python语法占用的方法:)
原来如此,了解了,谢谢老师及时的回复。
登录后可查看更多问答,登录/注册
创新设计,通俗易懂。编程结合数学,bobo带你彻底征服线性代数
1.1k 16
943 13
1.4k 12
1.6k 11
1.3k 10