编写一个歌手类。 要求: 1)具有姓名、性别和代表作等私有数据成员。 2)具有增加、删除代表作等公有方法。 3)具有外部属性,用来读写姓名和性别。 4)具有外部属性,用来返回代表作。 5)编写测试代码
时间: 2024-02-11 13:08:26 浏览: 96
好的,这是一个基本的歌手类的代码:
```python
class Singer:
def __init__(self, name, gender, hit_songs=[]):
self.__name = name
self.__gender = gender
self.__hit_songs = hit_songs
def add_hit_song(self, song):
self.__hit_songs.append(song)
def remove_hit_song(self, song):
self.__hit_songs.remove(song)
@property
def name(self):
return self.__name
@name.setter
def name(self, name):
self.__name = name
@property
def gender(self):
return self.__gender
@gender.setter
def gender(self, gender):
self.__gender = gender
@property
def hit_songs(self):
return self.__hit_songs
@hit_songs.setter
def hit_songs(self, hit_songs):
self.__hit_songs = hit_songs
```
这个类包含了姓名、性别和代表作三个私有数据成员,并且有增加、删除代表作的公有方法。外部属性包括读写姓名和性别,以及返回代表作。这个类的初始化方法可以设置歌手的姓名、性别和代表作。注意,这里的代表作是一个列表,可以没有初始值。这个类的属性和方法都使用了装饰器,以简化代码。
测试代码如下:
```python
# 创建一个歌手实例
singer = Singer("Taylor Swift", "Female")
# 设置歌手的代表作
singer.hit_songs = ["Love Story", "You Belong With Me", "Shake It Off"]
# 添加一个新的代表作
singer.add_hit_song("Blank Space")
# 删除一个代表作
singer.remove_hit_song("You Belong With Me")
# 输出歌手的姓名、性别和代表作
print("Name:", singer.name)
print("Gender:", singer.gender)
print("Hit Songs:", singer.hit_songs)
```
输出结果:
```
Name: Taylor Swift
Gender: Female
Hit Songs: ['Love Story', 'Shake It Off', 'Blank Space']
```
阅读全文