class Person: def __init__(self, name, weight): # 在初始化方法中增加两个参数由外界传递 # self.属性 = 形参 self.name = name self.weight = weight def __str__(self): return '我的名字叫 %s 体重是 %.2f' % (self.name, self.weight) def run(self): # pass print ('{}爱跑步'.format(self.name)) # 在对象方法的内部,是可以直接访问对象的属性 self.weight -= 0.5 def eat(self): #pass Print('{}吃东西'.format(self.name)) self.weight += 1 xiaoming = Person('小明',75.5) xiaoming.run() xiaoming.eat() print(xiaoming) xiaomei = Person('小美',45.0) xiaomei.eat() xiaomei.run() print(xiaomei)
时间: 2024-04-26 18:25:24 浏览: 17
这段代码定义了一个名为 Person 的类,并创建了两个实例 xiaoming 和 xiaomei。每个实例都有一个名字和体重属性,并且有两个方法:run() 和 eat()。run() 方法会让实例的体重减少0.5,eat() 方法会让实例的体重增加1。最后,通过 print() 函数打印出了两个实例的信息。运行结果如下:
小明爱跑步
小明吃东西
我的名字叫 小明 体重是 76.00
小美吃东西
小美爱跑步
我的名字叫 小美 体重是 46.00
相关问题
TypeError: __init__() got an unexpected keyword argument 'weight'
这个错误通常出现在Python中,当你尝试创建一个对象实例时,传递了一个该类构造函数(__init__方法)未预期的关键字参数`weight`。在Python里,类的构造函数是用于初始化对象属性的地方,如果在调用时提供了不属于官方参数列表的键值对,就会触发`TypeError`。
举个例子,假设有一个`Person`类,它的构造函数可能是这样的:
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
```
如果你这样创建对象:
```python
person = Person('Alice', weight=40) # 这将导致TypeError,因为'weight'不是`Person`类期望的参数
```
解决这个问题,你需要确认你提供的关键字参数是否匹配类的定义。如果是自定义需求,你应该在类的构造函数中添加`weight`作为额外的可选参数,或者直接忽略它。如果`weight`是一个意外的输入,那可能是你在调用某个函数而非创建对象时传错了参数。
class Person(object): def __init__(self, name, age): self.name = name self.age = age self.weight = 'weight' def talk(self): print("person is talking....") class Chinese(Person): def __init__(self, name, age, language): Person.__init__(self, name, age) self.language = language print(self.name, self.age, self.weight, self.language) def talk(self): # 子类 重构方法 print('%s is speaking chinese' % self.name) def walk(self): print('is walking...') c = Chinese('bigberg', 22, 'Chinese') c.talk() # 输出 bigberg 22 weight Chinese bigberg is speaking Chinese
这段代码定义了两个类:Person 和 Chinese。Person 类有一个初始化方法,初始化实例的名字、年龄和体重属性,并且有一个 talk() 方法,打印出 "person is talking...."。Chinese 类继承自 Person 类,有一个初始化方法,初始化实例的名字、年龄、语言属性,并且在初始化方法中调用了父类的初始化方法,输出实例的名字、年龄、体重和语言。Chinese 类也有一个 talk() 方法,重构了父类的 talk() 方法,打印出实例的名字和 "is speaking chinese"。Chinese 类还有一个 walk() 方法,打印出 "is walking..."。最后,创建了一个名为 c 的 Chinese 类的实例,调用了它的 talk() 方法,输出了实例的名字和 "is speaking Chinese"。
运行结果如下:
bigberg 22 weight Chinese
bigberg is speaking Chinese