【发布时间】:2021-12-15 03:24:30
【问题描述】:
class main:
def __init__(self, num1, num2, operator):
self.num1 = float(num1)
self.operator = operator
self.num2 = float(num2)
def mainfunc(self, operator, num1, num2):
while True:
if operator == "+":
return num1+num2
elif operator == "-":
return num1-num2
elif operator == "/":
return num1/num2
elif operator == "x" or "*":
print(int(num1)*int(num2))
break
p1 = main()
main.mainfunc(num1=input("Choose a number: "),
num2=input("Choose another number: "),
operator=input("Choose an operation: "))
我收到了这个错误 TypeError: main.init() 缺少 3 个必需的位置参数:'num1'、'num2' 和 'operator'
【问题讨论】:
-
你只需要像
main(num1=input("Choose a number: "), num2=input("Choose another number: "), operator=input("Choose an operation: "))那样做 -
您的
mainfunc应该是一个简单的函数,而不是类方法,因为它不使用类的任何属性/方法。 -
另一个提示,Python 中的类通常是用 PascalCase 编写的,因此您的类更适合命名为
Main。而且,类通常用作表示“对象”状态的蓝图,例如,Player类具有健康、耐力、库存等属性,以及攻击、移动等方法。您的课程所做的只是计算一个算术表达式,正如 Thierry 所提到的,这更适合作为一个简单的函数。
标签: python positional-parameter