我正在尝试使用一个类,但是我有这个错误:
TypeError: search() missing 1 required positional argument: 'self'
这是我的代码:
class School:
def search(self):
... # do some stuff
harva = School()
School.search()
答案 0 :(得分:1)
您的最后一行不正确:您必须(il faut que vous)通过实例调用实例方法,而不是使用类调用实例方法:
harva.search()
当您将方法作为类方法调用时,它需要实例:
School.search(harva)
但是,您应该使用第一个版本。
将来,不要一次写这么多代码。在编写所有这些之前,您应该尝试调用该方法。
答案 1 :(得分:0)
我认为您的意思是harva.search()
而不是School.search()
。
您将搜索定义为实例方法。你必须在学校的实例上调用它,而不是在学校课程本身上调用它。
答案 2 :(得分:0)
在面向对象的编程中……基本的基本元素是一个 object ,并且类及其member variables
和member functions
只能通过以下方式访问:该类,即再次 object 。
class School():
def search(self):
...#some code
harva = School()
harva.search()
您可以访问类内部的函数而无需创建该类的实例。
这些功能称为static functions.