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的初始化只是简单的赋值,

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值