热门搜索 :
考研考公
您的当前位置:首页正文

python中super获取类变量

2024-07-16 来源:伴沃教育

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

1、super 一般情况下获取的是方法,不过也可以获取变量:

class Base:
    NAME = 'BASE'
 
 
class Sub(Base):
    NAME = 'SUB'
 
    def print(self):
        print(self.NAME)
        print(super(Sub, Sub).NAME)
        
>>> Sub().print()
SUB
BASE

2、实例变量是无法获取的,因为父类并没有实例化,实例变量是不存在的,因此肯定是无法继承的。

还有一种情况:

class Base:
    NAME = 'BASE'
 
class Sub(Base):
    NAME = 'SUB'
 
    def print(self):
        print(self.NAME)
        print(super(Sub, Sub).NAME)
        print(Base.NAME)

最后两行在单继承环境下没有区别,但是在多级继承时存在区别。

以上就是python中super获取类变量的方法,希望能对大家有所帮助。更多Python学习指路:

伴沃教育还为您提供以下相关内容希望对您有帮助:

python中的super是什么?-

/new.param也正是因为只有执行了 super 才能初始化父类中的成员变量,因此如果在super之前是无法访问父类的成员变量的。本文通过一个python的实际案例的设计,来讲解python面向对象的技术——类的继承中必用的super函数的逻辑。其实我们可以把python中类的继承理解成这样的一个过程:当我们在括号中明确...

Python中super()详解及应用场景举例

针对Python中super()的疑惑,本文将深入解析其本质和应用场景。首先,super并非一个方法或内置关键字,而是一个类,这是通过查看其源码可以证实的。许多人误以为super仅用于调用父类方法,但这是一个误解。以一个例子来说明,如果按照这种观点,预期输出应为"D B A C A",但实际上并非如此。super的调...

(二十二)Python-类super函数的使用与深入理解

在多重继承场景下,如类C继承A和B,super(C, self).__init__() 实际上只调用A中的__init__函数,因为遵循从左至右查找的原则。若要同时调用A和B中的__init__函数,需确保A和B拥有共同的基类,如D,且A、B都调用基类D的__init__函数,从而在C中实现对A、B的__init__函数的调用。继承...

想了解Python中的super 函数么

在Python面向对象编程中,super() 函数是一个不可或缺的工具。它主要用于子类继承父类时,调用父类的方法。简单来说,super() 函数的作用在于简化代码,避免在子类中直接写出父类的名称,从而使得当继承关系发生变化时,代码的维护性得以提高。super() 函数的基本语法如下:super(子类, self)。它返回...

Python中的__init__和super()

例如,创建car子类时,如果Manager继承自Employee和Customer,需要重写__init__并调用父类方法以确保完整初始化。使用super().__init__()在子类构造函数中,可以继承父类的初始化行为。在实际例子中,通过三个子类(Puple、Puple_Init和Puple_Super)展示,子类在覆盖初始化方法时,是否调用super()对属性...

怎么理解Python中的super()、继承和派生?【新手篇】

不改变原有功能。super() 方法的使用需遵循特定格式,返回被绑定超类的实例,用于间接调用父类的覆盖方法。对于 Python 这样的编程语言,建议加入学习交流群,与他人共同学习,以提高学习效率。实践是掌握 Python 的关键,通过完成练习和项目,可以加深对继承和派生机制的理解。

python super init 使用及注意事项

super(ElectricCar, self).__init__(make, model, year)my_car = ElectricCar('hongqi', 'X 110', 2030)print(my_car.get_descriptive_name())通过上述示例,我们可以看到`super().__init__()`在实现类继承和初始化时的正确用法。在Python中,正确使用`super()`不仅可以简化代码,还能确保...

python中子类对父类初始化变量的赋值

1、使用self.x = x这样来添加变量 2、对于父类的初始化参数,如果不写,默认就使用父类无参的__init__方法 3、子类初始化父类参数B.__init__(self,aa,ab)4、使用super(子类类型,子类对象).foo()调用父类方法

python中的super(TestCase, self).__init__()如何理解

首先找到test的父类(比如是类A),然后把类test的对象self转换为类A的对象,然后“被转换”的类A对象调用自己的__init__函数

python中子类对父类初始化变量怎么赋值?

1、使用self.x = x这样来添加变量 2、对于父类的初始化参数,如果不写,默认就使用父类无参的__init__方法 3、子类初始化父类参数B.__init__(self,aa,ab)4、使用super(子类类型,子类对象).foo()调用父类方法

Top