面向对象-单继承

本文详细解析Python中类的继承机制,包括如何正确初始化基类和派生类的构造函数,以及super()函数的使用。通过具体示例,阐述了Python对象查找属性的顺序,帮助读者理解继承中的初始化过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#继承需要,先抽象再继承
'''实例化发生的过程:
1.创建一个对象
2. 把创建的对象传给自己得__init__,
3.如果自己没有,则把子类创建的对象传给父类的__init__的self
4.执行__init__
5.把self返回给alex
查找顺序
对象的内存空间——创建这个对象的类的内存空间——父类的内存空间
'''
# class Animal:
# def __init__(self,name,hp,dps):
# # print('===========')
# self.name=name
# self.hp=hp
# self.dps=dps
# def eat(self):
# print('%s吃药回血了'%self.name)
# class Person(Animal):
# def __init__(self,name,hp,dps,sex):
# #默认调自己的init,现要手动调父类
# # Animal.__init__(self,name,hp,dps)#方法1
# super().__init__(name,hp,dps) #方法2super(Person,self)跟super()一个概念
# self.sex=sex #派生属性
# class Dog(Animal):
# def __init__(self,name,hp,dps,kind):
# # Animal.__init__(self,name,hp,dps)
# super().__init__(name, hp, dps)
# self.kind=kind
# lxx=Person('lxx',200,300,'F')
# ha2=Dog('ha',300,500,'hashiqi')
# # print(lxx.__dict__)
# # print(ha2.__dict__)
# ha2.eat()
# lxx.eat()

#面试题
class Foo:
def __init__(self):
self.func()
def func(self):
print('in Foo')

class Son(Foo):
def func(self):
print('in Son')
Son()
#结果是?in Son
# self.func(),self本质上就是son的对象

转载于:https://www.cnblogs.com/lixiaoxuan/articles/9051458.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值