Python-如何从子类实例调用超类的方法?

韵律

当子类具有与父类中的方法同名的方法时,子类的方法将覆盖父类的方法。

在子类的定义中,可以通过访问父类的方法super()

然后,是否可以从子类实例访问父类的方法?

class Person:
    def print(self):
        print("Message from Person")

class Student(Person):
    def print(self):
        print("Message from Student")\

s = Student()
# Method of Student Class Instance
s.print()  # Output: "Message from Student"

# I want to call method "print" of Person
# from student Instance
# How can I call it?
s.super().print()  # ERROR
super(s).print()  # ERROR
地图

如果绝对没有其他方法可以访问父类,我想您可以这样做,但是我绝对建议这样做:

class Person:
    def print(self):
        print("Message from Person")


class Student(Person):
    def print(self):
        print("Message from Student")


s = Student()
# Method of Student Class Instance
s.print()  # Output: "Message from Student"
s.__class__.__base__.print(s.__class__.__base__)  # Output: "Message from Person"

您必须了解这是超级hacky,并且您没有像那样调用实例的方法s.print(),而是要调用未实例化类的方法,该方法不是classmethod(或staticmethod为此物质)并将类作为参数(即self参数)传递给它这是非常不同的语法。

再者,给方法赋予不同的名称而不是覆盖它们是更有意义的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python 2中从子类调用父类方法

来自分类Dev

Django / Python:如何从子类中的父类调用函数?

来自分类Dev

从Python超类运行方法时,如何知道调用它的子类的名称?

来自分类Dev

从Python超类运行方法时,如何知道调用它的子类的名称?

来自分类Dev

在Python上从子类更改超类的变量

来自分类Dev

从子类调用超类的方法

来自分类Dev

扩展超类,在Python中调用子类

来自分类Dev

如何让子类扩展python中超类的方法

来自分类Dev

python:如何针对MRO从子类对象调用父类的函数

来自分类Dev

Python 2.7在超类中具有关键字参数的功能:如何从子类访问?

来自分类Dev

Python C API,如何从子类型调用基本类型方法?

来自分类Dev

实例化超类的python中的子类化

来自分类Dev

将超类作为实例化参数的 Python 子类?

来自分类Dev

如何从子类调用超类构造函数?

来自分类Dev

从子类更改超类实例变量

来自分类Dev

Python:类实例的子类?

来自分类Dev

如何使超类方法返回子类的实例

来自分类Dev

父类的Python子类调用方法

来自分类Dev

Python:如何使子类在从其超类继承的方法下“关闭”

来自分类Dev

Python:如何使子类在从其超类继承的方法下“关闭”

来自分类Dev

从子类调用超类构造函数

来自分类Dev

从子类调用函数的超类

来自分类Dev

Python 2.3调用超类方法

来自分类Dev

如何从python中的子类静态方法访问父类实例方法?

来自分类Dev

通过超类实例调用子类类的方法

来自分类Dev

猴子修补从子方法(Python)调用的函数中的类

来自分类Dev

python-似乎无法从子级调用父类的方法

来自分类Dev

如何从子类修改超类变量?

来自分类Dev

AS3:调用超类方法而不是子类实例的替代?

Related 相关文章

  1. 1

    在Python 2中从子类调用父类方法

  2. 2

    Django / Python:如何从子类中的父类调用函数?

  3. 3

    从Python超类运行方法时,如何知道调用它的子类的名称?

  4. 4

    从Python超类运行方法时,如何知道调用它的子类的名称?

  5. 5

    在Python上从子类更改超类的变量

  6. 6

    从子类调用超类的方法

  7. 7

    扩展超类,在Python中调用子类

  8. 8

    如何让子类扩展python中超类的方法

  9. 9

    python:如何针对MRO从子类对象调用父类的函数

  10. 10

    Python 2.7在超类中具有关键字参数的功能:如何从子类访问?

  11. 11

    Python C API,如何从子类型调用基本类型方法?

  12. 12

    实例化超类的python中的子类化

  13. 13

    将超类作为实例化参数的 Python 子类?

  14. 14

    如何从子类调用超类构造函数?

  15. 15

    从子类更改超类实例变量

  16. 16

    Python:类实例的子类?

  17. 17

    如何使超类方法返回子类的实例

  18. 18

    父类的Python子类调用方法

  19. 19

    Python:如何使子类在从其超类继承的方法下“关闭”

  20. 20

    Python:如何使子类在从其超类继承的方法下“关闭”

  21. 21

    从子类调用超类构造函数

  22. 22

    从子类调用函数的超类

  23. 23

    Python 2.3调用超类方法

  24. 24

    如何从python中的子类静态方法访问父类实例方法?

  25. 25

    通过超类实例调用子类类的方法

  26. 26

    猴子修补从子方法(Python)调用的函数中的类

  27. 27

    python-似乎无法从子级调用父类的方法

  28. 28

    如何从子类修改超类变量?

  29. 29

    AS3:调用超类方法而不是子类实例的替代?

热门标签

归档