首页 新闻 会员 周边

函数调用的改错

0
[待解决问题]

题目:写一个方法sanjiao(a, b, c),判断三个参数(a, b, c)是否能构成一个三角形,如果不能则抛出异常IllegalArgumentException,显示异常信息”(a,b,c)不能构成三角形”,如果可以构成则显示”(a,b,c)能构成三角形”,从键盘获取输入的三个整数,调用此方法,并捕获并处理异常。

编码:
class SanJiao:
def sanjiao(self,a, b, c):
try:
if a + b > c and a + c > b and b + c > a:
print('该三边能构成三角形')
else:
raise Exception('IllegalArgumentException')
except Exception as error:
print('Error:',error,'a,b,c”不能构成三角形”')

a = SanJiao()
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))
print('第一种情况:')
a.sanjiao(a, b, c)
print()
print('第二种情况:')
a.sanjiao(a, b, c)

错误: File "C:\Users\Administrator\PycharmProjects\pythonProject\还有人符合.py", line 14, in <module>
a.sanjiao(a, b, c)
AttributeError: 'int' object has no attribute 'sanjiao'
兄弟们,这怎么弄呀?怎么改正呀?

momominmin的主页 momominmin | 初学一级 | 园豆:134
提问于:2021-12-22 17:44
< >
分享
所有回答(2)
0

啊这个?有点熟悉啊,兄嘚

echo_lovely | 园豆:1437 (小虾三级) | 2021-12-22 17:47

class SanJiao:
def sanjiao(self,a, b, c):
try:
if a + b > c and a + c > b and b + c > a:
print('该三边能构成三角形')
else:
raise Exception('IllegalArgumentException')
except Exception as error:
print('Error:',error,'a,b,c”不能构成三角形”')

a = SanJiao()// 这里有个 a.
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))// 又有个a ,电脑不知道那个是数字a,那个是三角a
print('第一种情况:')
a.sanjiao(a, b, c)

print()
print('第二种情况:')
a.sanjiao(a, b, c)

支持(0) 反对(0) echo_lovely | 园豆:1437 (小虾三级) | 2021-12-22 17:50

建议变量使用英文单词,数字我一般用i,j,k……

支持(0) 反对(0) echo_lovely | 园豆:1437 (小虾三级) | 2021-12-22 17:55
1

变量名重复了,变量a类在后面被input()函数重新赋值了,变成了int类型,所以报属性错误。

class SanJiao:
      def sanjiao(self, a, b, c):
            try:
                  if a + b > c and a + c > b and b + c > a:
                        print('该三边能构成三角形')
                  else:
                        raise Exception('IllegalArgumentException')
            except Exception as error:
                  print('Error:',error,'a,b,c”不能构成三角形”')

mySanjiao = SanJiao()    # 这里把 a 改成了 mySanjiao
# 这里的类新建出来是为了用它内部的 sanjiao() 函数做判断,所以作为一个工具,它不能和下面的变量名重复
a,b,c=eval(input("请输入您想知道是否能构成三角形的三个整数,并用逗号隔开:"))
print('第一种情况:')
mySanjiao.sanjiao(a, b, c)
print()
print('第二种情况:')
mySanjiao.sanjiao(a, b, c)
学渣戊 | 园豆:221 (菜鸟二级) | 2021-12-22 20:09
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册