python入门系列(24): python子类继承父类及初始化

1. 子类继承父类实现

当需要继承父类的初始化的值时,使用 super().__init__().

class A:
    def __init__(self):
        self.x = 0
# B 继承 A
class B(A):
    def __init__(self):
        super().__init__()
        self.y = 1

测试:

# 实例
cA = A()
print(cA.x)
cB = B()
print(cB.y)
print(cB.x)

运行结果:

0
1
0

若 类 B 没有 super().__init__() 会报错:

AttributeError: 'B' object has no attribute 'x'

2. 初始化并赋值变量

如果子类没有写__init__函数,那么,就会采用父类中的__init__函数;如果子类含有__int__函数,由于 super函数会对父类进行初始化,那么,子类和父类的__init__函数都生效。如果子类和父类有相同的变量名,那么,以子类的为准。

示例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
class FooParent(object):
	def __init__(self, b=2):
		self.parent = 'I\'m the parent.'
		self.b = b

	def bar(self,message):
		print ("%s from Parent" % message)
 
class FooChild(FooParent):
	def __init__(self, c, b=1):
		# super(FooChild,self) 首先找到 FooChild 的父类(就是类 FooParent),然后把类 FooChild 的对象转换为类 FooParent 的对象
		super(FooChild,self).__init__(b=b)    
		self.c = c
		
	def bar(self,message):
		super(FooChild, self).bar(message)
		print ('Child bar fuction')
		print (self.parent)
 
if __name__ == '__main__':
	fooChild = FooChild(c=3,b=1)
	print("c,b", fooChild.c, fooChild.b)

运行结果:

c,b 3 1

这样,子类和父类的变量都完成了初始化。


最近开通了个公众号,主要分享python学习相关内容,推荐系统,风控等算法相关的内容,感兴趣的伙伴可以关注下。
在这里插入图片描述
公众号相关的学习资料会上传到QQ群596506387,欢迎关注。


参考:

  1. 调用父类方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rosefunR

你的赞赏是我创作的动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值