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() 展开
附源码
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() 展开
展开全部
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计算所需的数据从哪里获得: 调用时给出则用第一种形式; 直接使用实例内部属性则用第二种。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询