鱼C论坛

 找回密码
 立即注册
查看: 1300|回复: 3

[已解决]亲们,帮忙看下这个错在哪里

[复制链接]
发表于 2019-6-27 22:04:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
#定义一个类Person,具有实例属性(姓名,年龄,身高,体重)和实例方法(分别输出这个人的年龄,体重是否达标)


class Person():
    def __init__(self,age,weight,name='二狗子'):
        self.age = age
        self.weight = weight
        self.height = height
        self.name = name
    def namepb(self,age,weight):
        self.age = age
        self.weight = weight
        if 18 <= self.age <= 30:
                 print("在评测年龄范围内!")
                 self.weightpb()
        else:
                print("超出测试年龄!")
    def weightpb(self,age,weight):
                 self.age = age
                 self.weight = weight
                 if self.weight < 100:
                     print("您的体重偏轻,请及时进食!")
                 elif 100 <= self.weight <= 150:
                     print("您的体重在正常范围")
                 else:
                     print("您的体重超出正常范围,建议减肥!")




提示错误如下:
Traceback (most recent call last):
  File "<pyshell#4>", line 1, in <module>
    a =Person()
TypeError: __init__() missing 2 required positional arguments: 'age' and 'weight
最佳答案
2019-6-27 22:21:54
本帖最后由 风丶少 于 2019-6-27 22:29 编辑

你没有传入age和weight数据

  1. class Person():
  2.     def __init__(self,age,weight,name='二狗子'):
  3.         self.age = age
  4.         self.weight = weight
  5.         self.name = name
  6.     def namepb(self):
  7.         if 18 <= self.age <= 30:
  8.                  print("在评测年龄范围内!")
  9.                  self.weightpb()
  10.         else:
  11.                 print("超出测试年龄!")
  12.     def weightpb(self):
  13.                  if self.weight < 100:
  14.                      print("您的体重偏轻,请及时进食!")
  15.                  elif 100 <= self.weight <= 150:
  16.                      print("您的体重在正常范围")
  17.                  else:
  18.                      print("您的体重超出正常范围,建议减肥!")



  19. >>> p = Person(24, 130)
  20. >>> p.namepb()
  21. 在评测年龄范围内!
  22. 您的体重在正常范围
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-6-27 22:21:05 | 显示全部楼层
看起纠结要死人代码。
1.初始化参数不够。
def __init__(self,age,weight,height, name='二狗子'):
     self.age = age
        self.weight = weight
        self.height = height
        self.name = name
2.实例化 参数对应
a =Person(18,12,13)

3. namepb, weightpb再次要求传age,weight不知道你是何意?(所以你的代码只有你知道了)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2019-6-27 22:21:54 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风丶少 于 2019-6-27 22:29 编辑

你没有传入age和weight数据

  1. class Person():
  2.     def __init__(self,age,weight,name='二狗子'):
  3.         self.age = age
  4.         self.weight = weight
  5.         self.name = name
  6.     def namepb(self):
  7.         if 18 <= self.age <= 30:
  8.                  print("在评测年龄范围内!")
  9.                  self.weightpb()
  10.         else:
  11.                 print("超出测试年龄!")
  12.     def weightpb(self):
  13.                  if self.weight < 100:
  14.                      print("您的体重偏轻,请及时进食!")
  15.                  elif 100 <= self.weight <= 150:
  16.                      print("您的体重在正常范围")
  17.                  else:
  18.                      print("您的体重超出正常范围,建议减肥!")



  19. >>> p = Person(24, 130)
  20. >>> p.namepb()
  21. 在评测年龄范围内!
  22. 您的体重在正常范围
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-6-28 09:00:10 | 显示全部楼层
ba21 发表于 2019-6-27 22:21
看起纠结要死人代码。
1.初始化参数不够。
def __init__(self,age,weight,height, name='二狗子'):

刚开始学这章节,还不是很懂
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-30 02:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表