Python中的类继承

欢迎关注 “小白玩转Python”,发现更多 “有趣”

继承是面向对象编程中的一个概念,现有的类可以被一个新的类修改。现有的类称为基类,新类称为派生类。在本文中,我们将讨论python中的类继承。

让我们开始吧!

Python类继承的语法如下:

class BaseClass: 
    #body of BaseClass
class DerivedClass(BaseClass): 
    #body of DerivedClass

对于我们的示例,我们将考虑从FacebookUser基类继承的SpotifyUser派生类。首先,我们定义我们的FacebookUser类:

class FacebookUser: 
    pass

现在让我们考虑一下FacebookUser的一些属性。让我们添加一个名字,姓氏和朋友列表:

class FacebookUser:
    def __init__(self, first_name, last_name, friends_list): 
        self.first_name = first_name
        self.last_name = last_name
        self.friends_list = friends_list

添加一个打印用户全名的方法:

class FacebookUser:
    ...
    def print_name(self):
       print(f'{self.first_name} {self.last_name}')

添加一个打印好友列表的方法:

class FacebookUser: 
    ...
    def print_friends(self):
       print(f'{self.friends_list}')

现在让我们创建一个类的实例:

User1 = FacebookUser('Mike', 'Tyson', ['Buster Douglas', 'Evander Holyfied', 'Roy Jones Jr.'])

现在我们可以调用‘print_name’方法:

User1.print_name()

接下来调用“ print_friends”方法:

User1.print_friends()

现在,我们创建一个SpotifyUser类,该类将继承FacebookUser类的方法和属性:

class SpotifyUser(FacebookUser):
    pass

当我们在派生类中添加“ __init__”方法时,它将覆盖基类“ __init__”方法。在派生类的“ __init__”方法中,我们可以使用“ super()”函数使SpotifyUser类(派生类)继承FacebookUser类(基类)的所有方法和属性:

class SpotifyUser(FacebookUser):
    def __init__(self, first_name, last_name, friends_list):
        super().__init__(first_name, last_name, friends_list)

通常,我们会覆盖基类“ __init__”方法的定义以扩展定义。让我们通过添加播放列表属性来扩展定义:

class SpotifyUser(FacebookUser):
    def __init__(self, first_name, last_name, friends_list, playlist):
        super().__init__(first_name, last_name, friends_list)
        self.playlist = playlist

现在让我们创建一个SpotifyUser类的实例:

user2 = SpotifyUser("Floyd", "Mayweather", ['Buster Douglas', 'Evander Holyfied', 'Roy Jones Jr.'], ["Harry Styles", "Taylor Swift"])

现在,我们可以在派生类上使用来自基类的‘ print_name’方法:

user2.print_name()

也可以在派生类实例上调用“ print_friends”方法:

user2.print_name()

最后我们可以向子类添加一个方法。让我们添加一种打印Spotify用户的播放列表的方法:

class SpotifyUser(FacebookUser):
    ...
    def get_playlist(self):
        print(f"{self.first_name} {self.last_name}'s playlist: {self.playlist}")
User2.get_playlist()

·  END  ·

HAPPY LIFE

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值