欢迎关注 “小白玩转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