python class Book: def __init__(self,name,number,price): self.name=name self.number=number self.price=price def __del__(self): print('Book destroyed-{},{},{:.2f}'.format((self.name,self.number,self.price))) sName = input() sNo = input() fPrice = float(input()) b = Book(sName,sNo,fPrice) b = None 哪里错了
时间: 2024-03-20 18:39:44 浏览: 98
代码中没有明显的语法错误,但是在执行时会出现错误。原因是在创建 Book 对象后,将其赋值为 None,这样会导致对象无法正常使用,也没有办法调用对象的方法。所以,建议删除 `b = None` 这一行代码,这样对象就能正常使用了。另外,在 `__del__` 方法中,应该使用一个括号将三个参数括起来,而不是使用两个括号,正确的代码如下所示:
```python
class Book:
def __init__(self,name,number,price):
self.name=name
self.number=number
self.price=price
def __del__(self):
print('Book destroyed-{}, {}, {:.2f}'.format(self.name, self.number, self.price))
sName = input()
sNo = input()
fPrice = float(input())
b = Book(sName, sNo, fPrice)
```
相关问题
5.设计一个book类,包括name,price,number三个属性,分别表示书名,价格和数量,方法包括show)输出书的name,price,number和total信息(total为总金额 ,等于price*number),在主块中 定义book类的一个对象,用户输入name,price和number作为对象的属性,调用show方法显示该书的信息(price和金额保留2位小数,number为整数)。 【注意】 运行效果应如下所示,格式错误算结果错误。 测试1:(第1行为输入,第2行为输出) Python', 20. 00. 5 name=Python price=20. 00 number=5 total=100.00
下面是一个示例代码实现:
```python
class Book:
def __init__(self, name, price, number):
self.name = name
self.price = price
self.number = number
def show(self):
total = self.price * self.number
print(f"name={self.name} price={self.price:.2f} number={self.number} total={total:.2f}")
name = input("请输入书名:")
price = float(input("请输入价格:"))
number = int(input("请输入数量:"))
book = Book(name, price, number)
book.show()
```
运行效果如下:
```
请输入书名:Python
请输入价格:20.00
请输入数量:5
name=Python price=20.00 number=5 total=100.00
```
设计一个book类,包括name,price,number三个属性,分别表示书名,价格和数量,方法包括show()输出书的name,price,number和total信息(total为总金额,等于price*number)。在主模块中定义book类的一个对象,用户输入name,price和number作为对象的属性,调用show方法显示该书的信息(price和金额保留2位小数,number为整数)。 【注意】运行效果应如下所示,格式错误算结果错误。 测试1:(第1行为输入,第2行为输出) 'Python',20.00,5 name=Python price=20.00 number=5 total=100.00
以下是book类的代码实现:
```python
class Book:
def __init__(self, name, price, number):
self.name = name
self.price = price
self.number = number
def show(self):
total = round(self.price * self.number, 2)
print(f"name={self.name} price={self.price:.2f} number={self.number} total={total:.2f}")
```
在主模块中,可以先获取用户输入的name, price和number,然后创建book对象并调用show方法输出信息。代码如下:
```python
name = input("请输入书名:")
price = float(input("请输入价格:"))
number = int(input("请输入数量:"))
book = Book(name, price, number)
book.show()
```
如果用户输入的是测试1中的数据,那么程序的输出应该如下所示:
```
请输入书名:Python
请输入价格:20.00
请输入数量:5
name=Python price=20.00 number=5 total=100.00
```
阅读全文