`
wx1568037608
  • 浏览: 34790 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

super(Student,self).__init__()初始化的是什么东西?

 
阅读更多

继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题?

2015-04-04源自:python进阶 5-17642 浏览2 回答

最佳回答

2015-05-05
1
super(Student,self).__init__()

这是对继承自父类的属性进行初始化。而且是用父类的初始化方法来初始化继承的属性。

也就是说,子类继承了父类的所有属性和方法,父类属性自然会用父类方法来进行初始化。

当然,如果初始化的逻辑与父类的不同,不使用父类的方法,自己重新初始化也是可以的。

 回复  9
 

a412739861 (提问者)

谢谢,大致了解清楚了~

#12015-05-05 回复
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/env python
# -*- coding:utf-8 -*-
 
class Person(object):
    def __init__(self,name,gender,age):
        self.name = name
        self.gender = gender
        self.age = age
 
class Student(Person):
    def __init__(self,name,gender,age,school,score):
        #super(Student,self).__init__(name,gender,age)
        self.name = name.upper()  
        self.gender = gender.upper()
        self.school = school
        self.score = score
 
= Student('Alice','female',18,'Middle school',87)
print s.school
print s.name

例如这样,父类对name和gender的初始化只是简单的赋值,

但子类要求字母全部大写。

分享到:
评论

相关推荐

    Python构造器用法解析.docx

    在这个例子中,`Student`类继承了`Person`类,并在其构造器中调用了`super().__init__(name, age)`,确保`Person`类的初始化过程得到执行,同时添加了`grade`属性。 总之,Python的构造器`__init__`是实现对象初始...

    Python面向对象编程练习题.zip

    4. 初始化方法:`__init__`是特殊方法,用于初始化新创建的对象。 ```python class Person: def __init__(self, name, age): self.name = name self.age = age ``` 5. 对象创建与调用方法:通过类创建对象,...

    08-python--writing-classes-特殊方法-属性

    `__init__`方法是一个特殊方法,也称为构造函数,它在创建新对象时自动调用,用于初始化对象的状态。 ### 2. 特殊方法(Special Methods) 特殊方法是具有双下划线前缀和后缀的类方法,如`__init__`。它们执行特定...

    定义一个学生类(Student),要求: (1)初始化数据成员数据成员(_Sno,_Sname,_Sage); (2)通过属性装饰器定义数据成员(Sno,Sname,Sage); (3)定义特殊方法

    在Python中,初始化数据成员通常在类的`__init__`方法中进行。例如,在定义`Student`类时,我们可以创建一个`__init__`方法来设置初始值。例如: ```python class Student: def __init__(self, sno, sname, sage...

    14-面向对象-第6天(自定义类型使用)-讲义共3页.pd

    `__init__`方法是一个特殊方法,用于初始化新创建的对象,我们称之为构造器。通过`self`关键字,我们可以访问对象的属性和方法。 创建类的实例非常简单,只需要调用类名并传入必要的参数: ```python p1 = Person...

    第8章-PythonPytho程序设计基础教程-面向对象编程.pptx

    `super().__init__(name, gender, weight)`调用了父类的初始化方法,确保`Student`实例也能正确地初始化姓名、性别和体重。 通过面向对象编程,我们可以构建复杂、易于理解和维护的程序结构。类和对象为我们提供了...

    day01-03讲义(面向对象进阶).zip

    构造函数(如Python中的`__init__`)用于初始化新创建的对象,而析构函数(如Python中的`__del__`)则在对象被删除时执行清理工作。这两个函数是类的重要组成部分,有助于管理对象的生命周期。 7. 静态方法与类方法...

    Python 面向对象编程

    `__init__`在创建对象时自动调用,用于初始化对象;`__del__`在对象被垃圾回收时调用,适合做清理工作。例如: ```python class People: def __init__(self, name): self.__name = name def __del__(self): ...

    Python3简明教程之7面向对象

    `__init__`方法是一个特殊方法,也称为构造函数,用于初始化新创建的对象。在这个例子中,`self.name`和`self.score`是实例变量,它们在创建对象时被赋值。 当我们创建一个类的实例时,这被称为实例化。例如: ```...

    清华大学精品Python学习PPT课件-第8章 Python类和对象.rar

    `self`是一个指向实例本身的引用,`name`和`age`参数用于初始化实例的属性。 接下来,我们创建对象,也称为实例化。这可以通过调用类名并传递任何必要的参数来完成: ```python student1 = Student("张三", 20) ``...

    python-类详细讲解.docx

    在这个例子中,`__init__` 是一个特殊方法,称为构造器,它在创建类的实例时自动调用,用于初始化实例的属性。`self` 是指向对象本身的引用,`name` 和 `age` 是传入的参数,分别赋值给实例的属性。 创建 `Person` ...

    python中子类调用父类函数的方法示例

    首先,Python中的初始化方法是`__init__()`,这是每个类都会用到的构造函数,用于创建新对象时进行初始化操作。父类和子类都可以有自己的`__init__()`方法,但子类的`__init__()`会覆盖父类的版本。为了在子类中调用...

    Object_Oriented_Programming_PYTHON-源码.rar

    在这个例子中,`__init__`是初始化方法,用于设置对象的初始状态;`self`是一个指向实例本身的引用,用于访问对象的属性和方法。 继承是OOP的另一重要概念,允许我们创建一个新类(子类)来扩展或修改已存在的类...

    Python技术面向对象编程常见问题解答.docx

    同时,`super()`函数被用来调用父类的`__init__`方法,确保初始化过程完整。 重写父类的方法是通过在子类中定义同名方法实现的。如`Student`类中的`introduce`方法,它重写了父类的`say_hello`方法,提供了更适合...

    Python下简易的单例模式详解

    给定的代码中,`student`类实现了单例模式,但初始版本的`__init__`方法没有处理多次初始化的问题,导致`name`属性被覆盖。修正后的版本通过添加`init_fir`类变量来控制`__init__`只执行一次。 ```python class ...

    类与对象的使用实验报告_类与对象的使用_

    `__init__`方法是一个特殊方法,用于初始化新创建的对象,也称为构造函数。 接下来,我们谈谈对象。对象是类的实例,它们是根据类的定义创建的。在上述`Student`类的例子中,我们可以创建多个学生对象: ```python...

    python中创建实例属性共3页.pdf.zip

    实例则是类的实体化,通过`__init__`方法初始化,可以拥有自己的属性和方法。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person('Alice', 25) ``` ...

    Python基础教程-第7章-Python面向对象.ppt

    在这个例子中,`__init__`方法是一个特殊方法(也称为魔术方法),用于初始化新创建的对象。`greet`方法是该类的一个实例方法,用于打印问候语。 对象的创建是通过调用类名并传递必要的参数给`__init__`方法来完成...

    python类基础_类模块_python_

    在这个例子中,`__init__` 方法是一个特殊方法(也称为魔术方法),用于初始化新创建的对象。`self` 是指向对象本身的引用,`name` 和 `age` 是对象的属性。`introduce` 是一个方法,定义了对象的行为。 类中的属性...

    2127010165-刘纪-类的定义及类成员的使用(21计科).rar

    这里的`__init__`方法是初始化方法,当创建类的实例时会自动调用,用于设置初始状态。`self`是一个指向实例本身的引用,用来访问实例的属性。 类成员的访问权限分为三种: - **公开(Public)**:任何地方都可以...

Global site tag (gtag.js) - Google Analytics