继承不是为了继承里面原来的属性和值么,不初始化的话,会有什么问题?
2015-04-04源自:python进阶 5-17642 浏览2 回答
最佳回答
2015-05-05
1
|
super (Student, self ).__init__() |
这是对继承自父类的属性进行初始化。而且是用父类的初始化方法来初始化继承的属性。
也就是说,子类继承了父类的所有属性和方法,父类属性自然会用父类方法来进行初始化。
当然,如果初始化的逻辑与父类的不同,不使用父类的方法,自己重新初始化也是可以的。
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 s = Student( 'Alice' , 'female' , 18 , 'Middle school' , 87 ) print s.school print s.name |
例如这样,父类对name和gender的初始化只是简单的赋值,
但子类要求字母全部大写。
相关推荐
在这个例子中,`Student`类继承了`Person`类,并在其构造器中调用了`super().__init__(name, age)`,确保`Person`类的初始化过程得到执行,同时添加了`grade`属性。 总之,Python的构造器`__init__`是实现对象初始...
4. 初始化方法:`__init__`是特殊方法,用于初始化新创建的对象。 ```python class Person: def __init__(self, name, age): self.name = name self.age = age ``` 5. 对象创建与调用方法:通过类创建对象,...
`__init__`方法是一个特殊方法,也称为构造函数,它在创建新对象时自动调用,用于初始化对象的状态。 ### 2. 特殊方法(Special Methods) 特殊方法是具有双下划线前缀和后缀的类方法,如`__init__`。它们执行特定...
在Python中,初始化数据成员通常在类的`__init__`方法中进行。例如,在定义`Student`类时,我们可以创建一个`__init__`方法来设置初始值。例如: ```python class Student: def __init__(self, sno, sname, sage...
`__init__`方法是一个特殊方法,用于初始化新创建的对象,我们称之为构造器。通过`self`关键字,我们可以访问对象的属性和方法。 创建类的实例非常简单,只需要调用类名并传入必要的参数: ```python p1 = Person...
`super().__init__(name, gender, weight)`调用了父类的初始化方法,确保`Student`实例也能正确地初始化姓名、性别和体重。 通过面向对象编程,我们可以构建复杂、易于理解和维护的程序结构。类和对象为我们提供了...
构造函数(如Python中的`__init__`)用于初始化新创建的对象,而析构函数(如Python中的`__del__`)则在对象被删除时执行清理工作。这两个函数是类的重要组成部分,有助于管理对象的生命周期。 7. 静态方法与类方法...
`__init__`在创建对象时自动调用,用于初始化对象;`__del__`在对象被垃圾回收时调用,适合做清理工作。例如: ```python class People: def __init__(self, name): self.__name = name def __del__(self): ...
`__init__`方法是一个特殊方法,也称为构造函数,用于初始化新创建的对象。在这个例子中,`self.name`和`self.score`是实例变量,它们在创建对象时被赋值。 当我们创建一个类的实例时,这被称为实例化。例如: ```...
`self`是一个指向实例本身的引用,`name`和`age`参数用于初始化实例的属性。 接下来,我们创建对象,也称为实例化。这可以通过调用类名并传递任何必要的参数来完成: ```python student1 = Student("张三", 20) ``...
在这个例子中,`__init__` 是一个特殊方法,称为构造器,它在创建类的实例时自动调用,用于初始化实例的属性。`self` 是指向对象本身的引用,`name` 和 `age` 是传入的参数,分别赋值给实例的属性。 创建 `Person` ...
首先,Python中的初始化方法是`__init__()`,这是每个类都会用到的构造函数,用于创建新对象时进行初始化操作。父类和子类都可以有自己的`__init__()`方法,但子类的`__init__()`会覆盖父类的版本。为了在子类中调用...
在这个例子中,`__init__`是初始化方法,用于设置对象的初始状态;`self`是一个指向实例本身的引用,用于访问对象的属性和方法。 继承是OOP的另一重要概念,允许我们创建一个新类(子类)来扩展或修改已存在的类...
同时,`super()`函数被用来调用父类的`__init__`方法,确保初始化过程完整。 重写父类的方法是通过在子类中定义同名方法实现的。如`Student`类中的`introduce`方法,它重写了父类的`say_hello`方法,提供了更适合...
给定的代码中,`student`类实现了单例模式,但初始版本的`__init__`方法没有处理多次初始化的问题,导致`name`属性被覆盖。修正后的版本通过添加`init_fir`类变量来控制`__init__`只执行一次。 ```python class ...
`__init__`方法是一个特殊方法,用于初始化新创建的对象,也称为构造函数。 接下来,我们谈谈对象。对象是类的实例,它们是根据类的定义创建的。在上述`Student`类的例子中,我们可以创建多个学生对象: ```python...
实例则是类的实体化,通过`__init__`方法初始化,可以拥有自己的属性和方法。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person('Alice', 25) ``` ...
在这个例子中,`__init__`方法是一个特殊方法(也称为魔术方法),用于初始化新创建的对象。`greet`方法是该类的一个实例方法,用于打印问候语。 对象的创建是通过调用类名并传递必要的参数给`__init__`方法来完成...
在这个例子中,`__init__` 方法是一个特殊方法(也称为魔术方法),用于初始化新创建的对象。`self` 是指向对象本身的引用,`name` 和 `age` 是对象的属性。`introduce` 是一个方法,定义了对象的行为。 类中的属性...
这里的`__init__`方法是初始化方法,当创建类的实例时会自动调用,用于设置初始状态。`self`是一个指向实例本身的引用,用来访问实例的属性。 类成员的访问权限分为三种: - **公开(Public)**:任何地方都可以...