0

反転カウント アルゴリズムの単純なクラスを実装しようとすると、PyDev で "Class variable undefined" というエラーが表示されるのはなぜですか? これが私のコードです:

from collections import deque

Class inversionCount:

    def __init__(self, n):
        self.n = n
    def inversionMergeSort(m, n):
        print m
        if len(m) <= 1:
            n = 0
            return (m, n)
        half = len(m)/2
        left = m[0:half]
        right = m[half:]
        left = mergeSort(left)
        right = mergeSort(right)
        return inversionSort(left, right)

    def inversionSort(left, right, n):
        leftQueue = deque(i for i in left)
        rightQueue = deque(j for j in right)
        orderedList = []
        while len(leftQueue) > 0 or len(rightQueue) > 0:
            if len(leftQueue) > 0 and len(rightQueue) > 0:
                if leftQueue[0] < rightQueue[0]:
                    orderedList.append(leftQueue[0])
                    leftQueue.popleft()
                else:
                    orderedList.append(rightQueue[0])
                    if len(leftQueue) > 1:
                        self.n += len(leftQueue)
                    rightQueue.popleft()
            elif len(leftQueue) > 0:
                orderedList.append(leftQueue[0])
                leftQueue.popleft()
            elif len(rightQueue) > 0:
                orderedList.append(rightQueue[0])
                rightQueue.popleft()
        return (orderedList, n)

それでも、PyDev は inversionCount が実際にクラスであることを認識できません。何かご意見は?

4

1 に答える 1

9

classは小文字です:

class inversionCount:

変数Classが実際に定義されていないため、エラーがスローされます。python は大文字と小文字が区別され、 ;Classと同じではありませんclass。前者は変数名と見なされ、一方classはキーワードです。

インタープリターを使用してコードを実行すると、代わりに構文エラーがスローされます。PyDev の解釈は少し異なります。

于 2012-11-06T16:20:51.580 に答える