通过封装编写Book类。要求:类具有属性书名、出版社、价格,其中价格不能少于0元,否则输出错
时间: 2023-06-04 13:06:03 浏览: 82
误信息。同时,类应具有方法可以获取和设置这些属性。
好的,这是关于封装编写Book类的问题。根据要求,Book类具有属性书名、出版社、价格,其中价格不能少于0元,否则输出错误信息。同时,类应具有方法可以获取和设置这些属性。
以下是一个可能的实现:
```python
class Book:
def __init__(self, title, publisher, price):
self.title = title
self.publisher = publisher
self.price = max(price, 0)
def get_title(self):
return self.title
def set_title(self, title):
self.title = title
def get_publisher(self):
return self.publisher
def set_publisher(self, publisher):
self.publisher = publisher
def get_price(self):
return self.price
def set_price(self, price):
self.price = max(price, 0)
```
在这个实现中,Book类的初始化方法会检查价格是否小于0,如果是,会将其设置为0。同时,类内部提供了获取和设置属性的方法。
您可以通过以下代码测试它:
```python
book = Book("Python入门实践", "机械工业出版社", -10)
print(book.get_title()) # Python入门实践
print(book.get_publisher()) # 机械工业出版社
print(book.get_price()) # 0
book.set_title("Python深入实践")
book.set_publisher("清华大学出版社")
book.set_price(50)
print(book.get_title()) # Python深入实践
print(book.get_publisher()) # 清华大学出版社
print(book.get_price()) # 50
```
输出结果应该为:
```
Python入门实践
机械工业出版社
0
Python深入实践
清华大学出版社
50
```