子类对象调用父类方法

这篇博客介绍了Python中类的继承和方法调用。通过一个例子展示了如何创建`Person`、`Father`和`Son`类,以及在子类中重写和调用父类方法的三种方式:使用`super()`、直接通过类名以及指定从哪个类的上一级开始查找方法。同时,解释了如何在实例化和调用方法时传递参数。
摘要由CSDN通过智能技术生成

class Person(object): def init(self, name, age): self.name = name self.age = age

def driver(self):
    print('开车太好玩了 ,10迈,太快了')

class Father(Person): # 如果我们现在想在原有父类方法基础上扩展,例如我们现在需要重写一个init方法 # 可以接收 name, age ,gender三个属性 def init(self, name, age, gender): # 在父类方法中已经添加了name,和age我们可不可以直接使用呢??? super().init(name, age) # 在父类方法的基础上我们在添加一个子类方法独有的功能 self.gender = gender

def driver(self):
    print('我要去天安门完,开挖掘机不让我进')
​
def __str__(self):
    return f'我的姓名是{self.name},我的年龄是{self.age},我的性别是{self.gender}'

class Son(Father): def driver(self): # 调用Person中的dirver # TypeError: driver() missing 1 required positional argument: 'self' # Person.driver() Person.driver(self) # Monkey.driver(Monkey()) # 从Father类的上一级类开始查找方法,并进行调用 super(Father,self).driver()

    # 调用Father中的dirver
    super().driver()
    # 格式:super(从哪个类的上一级开始查找,self).方法名()
    # 如果类名是当前类,可以省略括号内的内容
    super(Son, self).driver()
    # 书写特有功能

所有的参数都传递到了Father类中,并且添加为当前对象的属性

print(Father('Jack', 28, '男')) s1 =Son('xiaoming', 12, '男') s1.driver()

子类中调用父类方法的三种方式:

super().方法名() # 只能调用当前类的上一级类中的方法或函数

类名.方法名(self) # 所使用的类名,必须在当前类的继承关系中

super(要从哪一个类的上级类开始查询,self).方法名() # 类名必须在继承关系内,如果类名是当前所在的类,则可以将括号内内容省略,就是第一中方式

class Monkey(object):

def driver(self):

print('我在骑自行车')

#

m1 = Monkey()

# 如果使用实例调用实例方法,可以自动将对象传入方法

m1.driver()

# 如果使用类调用实例方法,需要手动传递实例到方法内

Monkey.driver(m1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值