关于python:typeerror:”instancemethod”对象不可订阅’instancemethod’ object is unsubscriptable

TypeError: 'instancemethod' object is unsubscriptable

我正在模拟Round Robbin算法,下面列出的代码给出了我的错误

1
2
RR.Przesuniecie[Oczekujace_procesy]
TypeError: 'instancemethod' object is unsubscriptable

这里是一段代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class RR:
 def Przesuniecie(self, Lista):
    if(len(Lista) < 2):
        return Lista
    else:
        head = Lista[0]

        for i in range(1, len(Lista)):
                Lista[i-1] = Lista[i]
        Lista[-1] = head

        return Lista

 def Symulacja(self, n ,kwant):
        Oczekujace_procesy = []

        [....]
        if(timer == kwant):
          RR.Przesuniecie[Oczekujace_procesy]

我不知道为什么会出错。只有一段代码,在清单Oczekujace_procesy上,我正在做一些操作。


在您的方法def Symulacja(self, n ,kwant):中,您错误地访问Przesuniecie作为RR.Przesuniecie[Oczekujace_procesy]Przesuniecie恰好是一个实例方法,而不是类方法,所以它是不可访问的。

您可以了解到这两种方法在类和实例方法之间的区别。

相反,以self.Przesuniecie(Oczekujace_procesy)的形式访问它。


标点符号很重要。

1
self.Przesuniecie(Oczekujace_procesy)