zoukankan      html  css  js  c++  java
  • Python内置函数之super()

    super(type[,object-or-type])

    super()的作用在于类继承方面。

    他可以实现不更改类内部代码,但是改变类的父类。

    例子:

    一般我们继承类的方式:
    >>> class A:
    ...   def __init__(self):
    ...     print(A.__init__)
    ...
    >>> class B(A):
    ...   def __init__(self):
    ...     print(B.__init__)
    ...     A.__init__(self)
    ...
    >>> b = B()
    <function B.__init__ at 0x000000E8A87DC840>
    <function A.__init__ at 0x000000E8A87DC9D8>
    这样有一个问题,当B的父类换为A1时,又要去修改B类内部的值,这样做很不方便!
    于是有了super()这样的替代方式:
    >>> class B(A):
    ...   def __init__(self):
    ...     print(B.__init__)
    ...     super().__init__() #等效于super(B,self).__init__()
    ...
    >>> b = B()
    <function B.__init__ at 0x000000E8A87DC7B8>
    <function A.__init__ at 0x000000E8A87DC9D8>
    这样的方式避免了修改B类的内部,便于维护了。
    如果只有一个参数,则不会继承父类。#super(B).__init__(),只会调用B类本身
    如果第二个参数是一个类对象,那么该类对象是第一个参数的子类。

     

  • 相关阅读:
    修改VNC的分辨率
    How to use WinSCP with public key authentication
    CentOS-7-x86_64-DVD-1511.iso
    6.828
    Tampermonkey版Vimium
    servlet+jsp完成简单登录
    Servlet知识点小结
    HTTP基础知识点小结
    LeetCode 371两数之和
    LeetCode53 最大子序列问题
  • 原文地址:https://www.cnblogs.com/leomei91/p/7359157.html
Copyright © 2011-2022 走看看