如何在Python中实现虚拟方法?

发布于 2021-01-29 18:17:39

我知道PHP或Java的虚拟方法。

如何在Python中实现它们?

还是我要在抽象类中定义一个空方法并覆盖它?

关注者
0
被浏览
211
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    当然,您甚至不必在基类中定义方法。在Python中,方法要比虚拟方法更好-它们是完全动态的,因为Python中的输入是 鸭子输入

    class Dog:
      def say(self):
        print "hau"
    
    class Cat:
      def say(self):
        print "meow"
    
    pet = Dog()
    pet.say() # prints "hau"
    another_pet = Cat()
    another_pet.say() # prints "meow"
    
    my_pets = [pet, another_pet]
    for a_pet in my_pets:
      a_pet.say()
    

    Cat而且Dog在Python中,甚至不必从通用基类派生该行为即可-
    您可以免费获得它。就是说,一些程序员更喜欢以更严格的方式定义他们的类层次结构,以更好地记录它并施加 一定
    的键入严格性。这也是可能的,例如参见abc标准模块



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看