z念念zzzz 发表于 2021-9-25 22:24:50

在类的初始化函数中调用类函数出错

本帖最后由 z念念zzzz 于 2021-9-25 22:40 编辑

class G():
    x = 1
    def __init__(self):
      print(self.show_result(self.x))
      # 调用show_result()函数,打印返回元组。
    def show_result(a):
      b = a * 2
      c = a * 3
      return b, c
g = G()


请问以上代码运行后为什么提示 “takes 2 positional argument,but 3 were given”?应该怎么修改才能正常运行?

Twilight6 发表于 2021-9-25 22:29:58


报错:你传入了2个参数,但是函数需要 3 个参数

在类中,实例方法第一个默认参数是 self,必带 self

其次才是传入的参数,所以你把 show_result 函数前面多就加个 self 即可

所以你代码应修改为:

class G():
    x = 1
    def __init__(self):
      print(self.show_result(self.x))
      # 调用show_result()函数,打印返回元组。
    def show_result(self, a):
      b = a * 2
      c = a * 3
      return b, c
g = G()

z念念zzzz 发表于 2021-9-25 22:38:07

Twilight6 发表于 2021-9-25 22:29
报错:你传入了2个参数,但是函数需要 3 个参数

在类中,实例方法第一个默认参数是 self,必带 self ...

谢谢你!解释得非常清楚,太感谢啦!
页: [1]
查看完整版本: 在类的初始化函数中调用类函数出错