python函数能重载吗 python 函数可以重名吗

python运算符重载问题将__div__换成__truediv__试试
因为在python 2.x.x 里面 / 是classic division 所以LOVESOO的回答没有问题
在python 3.x.x / 对应的是 true division 所以试试定义 __truediv__
搜 API Changes
为什么 Python 不支持函数重载重载和重写,这是两个新概念,是两个令我们容易混淆的概念 。方法重载(overloadingmethod)是在一个类里面,方法名字相同,而参数不同 。返回类型呢?可以相同也可以不同 。方法重写(overidingmethod)子类不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写 。方法重写又称方法覆盖 。方法重载是让类以统一的方式处理不同类型数据的一种手段 。Java的方法重载 , 就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义 。调用方法时通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法,这就是多态性 。方法重写:在Java中,子类可继承父类中的方法 , 而不需要重新编写相同的方法 。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写 。方法重写又称方法覆盖 。若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法 。如需父类中原有的方法 , 可使用super关键字,该关键字引用了当前类的父类重写方法的规则:参数列表必须完全与被重写的方法的相同,否则不能称其为重写而是重载.返回的类型必须一直与被重写的方法的返回类型相同,否则不能称其为重写而是重载.访问修饰符的限制一定要大于被重写方法的访问修饰符(publicprotecteddefaultprivate)重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如,父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,可以抛出非检查异常.重载的规则:必须具有不同的参数列表;可以有不同的返回类型,只要参数列表不同就可以了;可以有不同的访问修饰符;可以抛出不同的异常;注意,Java的方法重载要求同名的方法必须有不同的参数表,仅有返回类型不同是不足以区分两个重载的方法 。重写方法只能存在于具有继承关系中,重写方法只能重写父类非私有的方法 。下面分别举一个例子来说明方法重载:publicclassTestOverLoad{publicstaticvoidmain(String[]args){Testtest=newTest();test.print(null);}}classTest{publicvoidprint(Stringsome){System.out.println("Stringversionprint");}publicvoidprint(Objectsome){System.out.println("Objectversionprint");}}该程序输出的结果是Stringversionprint 。
Python正确重载运算符的方法示例详解Python正确重载运算符的方法示例详解
说到运算符重载相信大家都不陌生python函数能重载吗,运算符重载的作用是让用户定义的对象使用中缀运算符(如 + 和 |)或一元运算符(如 - 和 ~) 。说得宽泛一些python函数能重载吗 , 在 Python 中,函数调用(())、属性访问(.)和元素访问 / 切片([])也是运算符 。
我们为 Vector 类简略实现了几个运算符 。__add__ 和 __mul__ 方法是为了展示如何使用特殊方法重载运算符,不过有些小问题被我们忽视了 。此外,我们定义的Vector2d.__eq__ 方法认为 Vector(3, 4) == [3, 4] 是真的(True),这可能并不合理 。下面来一起看看详细的介绍吧 。
运算符重载基础
在某些圈子中,运算符重载的名声并不好 。这个语言特性可能(已经)被滥用 , 让程序员困惑,导致缺陷和意料之外的性能瓶颈 。但是,如果使用得当 , API 会变得好用,代码会变得易于阅读 。Python 施加了一些限制 , 做好了灵活性、可用性和安全性方面的平衡:

推荐阅读