创建一个Person类,属性有name、weight,分别是姓名。体重,要求改写_str_方法,使得打印Person类的对象时,显示结果为该对象的姓名和体重:创建一个Sportman类,其继承Person类,Sportman类具有两个方法:eat方法,表示每次吃东西体重会增加1公斤;run方法,表示每次运动体重会减少0.5公斤:程序中创建一个Sportman对象(姓名和初始体重值自定),并通过调用eat和run方法改变这个对象的体重,并重新打印该对象。
时间: 2024-03-17 17:41:39 浏览: 20
好的,我来帮您写这个程序。代码如下:
```python
class Person:
def __init__(self, name, weight):
self.name = name
self.weight = weight
def __str__(self):
return f"姓名:{self.name},体重:{self.weight}公斤"
class Sportman(Person):
def eat(self):
self.weight += 1
def run(self):
self.weight -= 0.5
if __name__ == '__main__':
s = Sportman("张三", 60)
print(s)
s.eat()
print(s)
s.run()
print(s)
```
运行结果如下:
```
姓名:张三,体重:60公斤
姓名:张三,体重:61公斤
姓名:张三,体重:60.5公斤
```
在程序中,我们首先定义了一个 `Person` 类,该类具有 `name` 和 `weight` 两个属性,并重写了 `__str__` 方法,以便在打印对象时能够直接显示该对象的姓名和体重。
接下来,我们定义了一个 `Sportman` 类,该类继承自 `Person` 类,并新增了 `eat` 和 `run` 两个方法,用于表示运动员每次吃东西会增加1公斤体重,而每次运动会减少0.5公斤体重。
在程序的主函数中,我们创建了一个 `Sportman` 对象 `s`,并打印了该对象的姓名和体重。接着,我们调用了 `s` 对象的 `eat` 方法和 `run` 方法,用于改变该对象的体重,并重新打印了该对象。