【发布时间】:2020-03-08 05:16:07
【问题描述】:
在我的程序中,我基本上想返回一个测试两个学生之间是否相等的方法的结果(即,如果两个学生上的课程数量相等)
我创建了一个名为 Student 的类。然后我创建了两个函数并定义了它们的属性。我实际上是在尝试比较学生类中的两个对象,并且需要一种方法来检查两者之间的相等性。
class Student:
def __init__(self, name, age, classesTaken):
self.name = name
self.age = age
self.classesTaken = classesTaken
def equals (student):
is_equals = student.name == self.name and student.age == self.age and
student.classesTaken == self.classesTaken
return is_equals
mike = Student("Mike", 21, 25)
john = Student("John", 19, 22)
#problem starts here
print (mike.equals(john))
我不断收到错误:
输入 Traceback(最近一次调用最后一次):
文件“main.py”,第 18 行,在print (mike.equals(john)) TypeError: equals() 接受 1 个位置参数,但给出了 2 个
【问题讨论】:
-
一个调用方法被隐式地使用
instance调用。使用def equals (self, student)而不是def equals (student) -
您错过了添加强制性
self参数。