python-3.9 - “TypeError: __init__() missing 3 required positional arguments”是我得到的错误,但我已经回答了所有的论点,我做错了什么

我已经回答了所有的论点我做错了什么。我也是新手,所以我可能犯了一个非常明显的错误,谢谢你的帮助。

错误信息

Traceback (most recent call last):
  File "C:\Users\cogli\PycharmProjects\inkling\classses_pt2.py", line 4, in <module>
    stu = data(input("name, ") + input("major, ") + input("gpa, ") + input("is_on_probation "))
TypeError: __init__() missing 3 required positional arguments: 'major', 'gpa', and 'is_on_probation'

代码

from classes import data
#stu = data(input("name, " + "major, " + "gpa, " + "is_on_probation "))
stu = data(input("name, ") + input("major, ") + input("gpa, ") + input("is_on_probation "))
print(stu.name)

导入文件

class data:
    def __init__(self, name, major, gpa, is_on_probation):
        self.name=name
        self.major=major
        self.gpa=gpa
        self.is_on_probation=is_on_probation

结果

name, ian
major, physics
gpa, 4.0
is_on_probation False
Traceback (most recent call last):
  File "C:\Users\cogli\PycharmProjects\inkling\classses_pt2.py", line 4, in <module>
    stu = data(input("name, ") + input("major, ") + input("gpa, ") + input("is_on_probation "))
TypeError: __init__() missing 3 required positional arguments: 'major', 'gpa', and 'is_on_probation'

我正在使用 python 3.9 来执行此操作。

回答1

input("name, ") + input("major, ") + input("gpa, ") + input("is_on_probation ") 返回单个字符串,因为 + 运算符连接字符串。在 Python 中,分隔函数参数的语法使用逗号,所以你应该这样做

stu = data(input("name, "), input("major, "), input("gpa, "), input("is_on_probation "))

相似文章

随机推荐

最新文章