备用构造函数缺少必需的位置参数

时间:2014-12-02 14:15:05

标签: python function oop

我写了一个函数wczytaj来获取所有参数,我想将它们返回给构造函数,但它不能以这种方式工作。我想知道为什么不以及如何解决它

我收到此错误:

 TypeError: wczytaj() missing 3 required positional arguments: 'a', 'b', and 'c'

是否无法编写一个函数并返回3个参数?

 from math import sqrt

 def wczytaj(a , b , c):
      a = input("Podaj parametr A? ")
      b = input("Podaj parametr B ")
      c = input("Podaj parametr C? ")
      return a , b , c

 class Rk:

      def __init__(self,a,b,c):
         self.a = a
         self.b = b        
         self.c = c


 nowe = Rk(wczytaj())


 print("Ten program rozwiązuje równanie kwadratowe po podaniu parametrów.")
 print("\n Równianie jest postaci {}x*x + {}x + {} = 0  ".format(a, b, c), end="")

1 个答案:

答案 0 :(得分:2)

wczytaj函数

中删除参数
def wczytaj():
      a = input("Podaj parametr A? ")
      b = input("Podaj parametr B ")
      c = input("Podaj parametr C? ")
      return a , b , c

然后你必须使用*运算符将返回的值作为参数解压缩到类__init__

nowe = Rk(*wczytaj())

您现在可以看到,当我分别输入123时,成员现已设置

>>> nowe.a
1
>>> nowe.b
2
>>> nowe.c
3