【发布时间】:2021-03-02 07:29:02
【问题描述】:
我有两个班级:
class Media:
def __init__(self, title="No Title", author="No Author", release_year="No Release Year", url="No URL"):
self.title = title
self.author = author
self.release_year = release_year
self.url = url
class Song(Media):
def __init__(self, title, author, release_year, url, album="No Album", genre="No Genre", track_length=0):
super().__init__(title, author, release_year, url)
self.album = album
self.genre = genre
self.track_length = track_length
然后我尝试创建一个对象
mySong = Song()
我收到一条错误消息,说TypeError: __init__() missing 4 required positional arguments: 'title', 'author', 'release_year', and 'url'
有没有办法从父类继承默认值?就像我们可以将“无标题”从 Media 类传递给 Song 类
如果我只提供部分信息,我们是否可以将它们组合在一起,例如如果我创建一个新对象
newSong = Song(author="justin bieber")
试试
print(newSong.author)
print(newSong.url)
我希望它会显示 Justin bieber 和 No URL。
非常感谢。
【问题讨论】:
标签: python-3.x class inheritance