zoukankan      html  css  js  c++  java
  • python中super的用法实例解析

    概念

    super作为python的内建函数。主要作用如下:

    • 允许我们避免使用基类
    • 跟随多重继承来使用

    实例

    在单个继承的场景下,一般使用super来调用基类来实现:
    下面是一个例子:

    class Mammal(object):
      def __init__(self, mammalName):
        print(mammalName, 'is a warm-blooded animal.')
        
    class Dog(Mammal):
      def __init__(self):
        print('Dog has four legs.')
        super().__init__('Dog')
        
    d1 = Dog()
    

    输出结果:
    ➜ super git:(master) ✗ py super_script.py
    Dog has four legs.
    Dog is a warm-blooded animal.

    super在多重继承里面的使用:
    下面是一个例子:
    '

    class Animal:
      def __init__(self, animalName):
        print(animalName, 'is an animal.');
    class Mammal(Animal):
      def __init__(self, mammalName):
        print(mammalName, 'is a warm-blooded animal.')
        super().__init__(mammalName)
    
    class NonWingedMammal(Mammal):
      def __init__(self, NonWingedMammalName):
        print(NonWingedMammalName, "can't fly.")
        super().__init__(NonWingedMammalName)
    class NonMarineMammal(Mammal):
      def __init__(self, NonMarineMammalName):
        print(NonMarineMammalName, "can't swim.")
        super().__init__(NonMarineMammalName)
    class Dog(NonMarineMammal, NonWingedMammal):
      def __init__(self):
        print('Dog has 4 legs.');
        super().__init__('Dog')
    
    d = Dog()
    print('')
    bat = NonMarineMammal('Bat')
    
    

    输出结果:

    ➜  super git:(master) ✗ py super_muli.py
    Dog has 4 legs.
    Dog can't swim.
    Dog can't fly.
    Dog is a warm-blooded animal.
    Dog is an animal.
    
    Bat can't swim.
    Bat is a warm-blooded animal.
    Bat is an animal.
    

    参考文档

  • 相关阅读:
    HDU 5937 Equation
    HDU 5936 Difference
    hdu 4348 To the moon
    SPOJ QTREE Query on a tree
    HDU 3966 Aragorn's Story
    Codeforces 733F Drivers Dissatisfaction
    道良心题
    dp小总结
    数据结构
    数学相关(偏数学向题目的集中地)
  • 原文地址:https://www.cnblogs.com/dylancao/p/12077605.html
Copyright © 2011-2022 走看看