1、创建图书类:Book 2、定义私有属性:name书名,price价格,author作者,country出厂国籍,type类型 3、属性的约束如下: name:长度不能超过20个字符 price:30至300之间 country:只能是中国或美国或日本 type:不能为'黄色类',其它都可以 4、创建getString方法,返回基本信息:书名:xxx,价格:xxx,作者:xxx,出厂国籍:xxx,类型:xxx
时间: 2023-05-25 13:06:49 浏览: 111
F1book的属性与方法
class Book:
def __init__(self, name, price, author, country, btype):
self.__name = name
self.__price = price
self.__author = author
self.__country = country
self.__btype = btype
def getString(self):
return "书名:{}, 价格:{}, 作者:{}, 出厂国籍:{}, 类型:{}".format(self.__name, self.__price, self.__author, self.__country, self.__btype)
def getName(self):
return self.__name
def getPrice(self):
return self.__price
def setCounrty(self, country):
if country in ('中国', '美国', '日本'):
self.__country = country
else:
print('国籍必须是中国、美国或日本!')
def setBtype(self, btype):
if btype == '黄色类':
print('类型不能为黄色类!')
else:
self.__btype = btype
name = property(getName)
price = property(getPrice)
country = property(lambda self: self.__country, setCounrty)
btype = property(lambda self: self.__btype, setBtype)
# 测试代码
if __name__ == '__main__':
book = Book('Python最佳实践', 45.8, 'Sanqiang Zhao', '中国', '编程技术')
print(book.getString()) # 书名:Python最佳实践, 价格:45.8, 作者:Sanqiang Zhao, 出厂国籍:中国, 类型:编程技术
book.country = '美国' # 国籍必须是中国、美国或日本!
book.btype = '黄色类' # 类型不能为黄色类!
book.country = '英国' # 国籍必须是中国、美国或日本!
book.btype = 'IT技术' # 修改成功
print(book.getString()) # 书名:Python最佳实践, 价格:45.8, 作者:Sanqiang Zhao, 出厂国籍:日本, 类型:IT技术
阅读全文