当我运行下面提供的代码时,出现以下错误:
TypeError:必须使用Page实例作为第一个参数调用unbound方法setSize()(改为使用int实例)
在我的主要内容中,我调用了一个名为Page的类。变量pageSize是一个整数。
from Page import Page as Page
def main():
#other code....
Page.setSize(pageSize)
这是我的Page:
class Page:
def __init__(self, frame):
self.frameId = frame
self.pageId = -1
self.timeEvicted = 0
self.timeLoaded = 0
self.ifLoaded = False
self.ownerProcess = 0
self.referencedWords = []
def initalize(owner, pgId, refdWord, ifLoad):
self.ownerProcess = owner
self.pageId = pgId
addRefdWord(refdWord)
self.ifLoaded = ifLoad
def setSize(s):
self.size = s
答案 0 :(得分:1)
每个实例方法(有权访问self
的方法)必须self
为第一个参数:
def initalize(self, owner, pgId, refdWord, ifLoad):
^^^^^
...
def setSize(self, s):
^^^^^
self.size = s
否则,self
未在函数体中定义。同样,Page.setSize(pageSize)
将无效,因为您没有类的实例。您需要在调用实例方法之前创建一个:
page = Page()
page.setSize(pageSize)
现在,page.size == pageSize
。