Python中有重写和重载的方法吗?

问1:Python中有重写和重载的方法吗?

  • 先说结论:Python因为语言的特性,没有重载,但是有重写的方法。

问2:什么是重写?

  • 1. 先看代码:
class Calculator:
    def add(self, a, b):
        print("我执行了吗?")
        return a + b + 100

    def add(self, a, b):
        return float(a) + float(b)


cal = Calculator()
print(cal.add(5, 3))
print(cal.add(5.5, 3.3))
  • 2. 运行示例:

问3:什么是重载?

  • 1.先看代码:

class Animal:
    def sound(self):
        print("动物叫")


class Dog(Animal):
    def sound(self):
        print("狗叫")


dog = Dog()
dog.sound()
  • 2.运行结果:

 

总结:

  • 重载定义:

    • 同一个类中定义了多个同名的方法。
    • 在其他语言会根据输入的类型不同,自动找到要执行的那个。
    • 而python是动态语言,所以不支持传统意义上的重载。
    • (个人理解:重载重载,就是重复载入嘛,这里的重是指“重复”)
  • 重写定义:

    • 子类重新定义继承自父类的方法。
    • Python完全支持重写。
    • 当子类中定义了与父类相同名称的方法时,调用子类的该方法会覆盖父类的同名方法,这就是所谓的重写。
    • 个人理解:重写就是,老师说你写的不对,重新写一遍呗。就是继承了老师的写法,但自己又重写了一遍。这里的重是指“重新,又一次

附:重的含义

 

 

 

参考资料:

51博客:https://blog.51cto.com/u_16213422/7210802 

https://www.cnblogs.com/mic112/p/15478708.html

重载和重写的定义,来自:GPT-4-Turbo

posted @ 2024-03-17 12:45  o蹲蹲o  阅读(19)  评论(0编辑  收藏  举报