python求解,为什么执行函数的会出现TypeError:Pan() takes exactly 3 arguments (1 given)

而如果把Pan函数中的a,b两个参数去掉,就可正确执行了呢。对造成这种错误的原因不是很明白附源码classHe:A=B=0def__init__(self):self.a... 而如果把Pan函数中的a,b两个参数去掉,就可正确执行了呢。对造成这种错误的原因不是很明白
附源码
class He:
A=B=0
def __init__(self):
self.a=int(raw_input("a="))
self.b=int(raw_input("b="))
def Pan(self,a,b):
A=self.a*self.a+self.b*self.b
if A>100:
print A
elif A<=100 :
B=self.a+self.b
print B
he=He()
he.Pan()
展开
 我来答
tim_spac
推荐于2017-10-04 · TA获得超过3628个赞
知道大有可为答主
回答量:1804
采纳率:100%
帮助的人:2013万
展开全部
class He:
   A=B=0
   def __init__(self):
      self.a=int(raw_input("a=")) 
      self.b=int(raw_input("b=")) 
   def Pan(self):
      A=self.a*self.a+self.b*self.b
      if A>100:
         print A
      elif A<=100 :
         B=self.a+self.b
         print B
he=He()
he.Pan()
追问
我就是想知道 为什么 Pan()参数中如果有了a和b就会报错了。
新手,在练习的时候经常会这样,不明白是什么原因引起的
追答
def Pan(self, a, b)
这样的声明要求在调用该方法时传递两个参数a, b进来进行处理;

def Pan(self)
这样的声明要求在调用该方法时不需要另外传递参数

这个差异关键在于Pan计算所需的数据从哪里获得: 调用时给出则用第一种形式; 直接使用实例内部属性则用第二种。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式