课堂作业问题

时间:2012-11-06 16:20:18

标签: python

当我尝试为反转计数算法实现一个简单的类时,为什么PyDev会给我这个错误:“类变量未定义”?这是我的代码:

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确实是一个类。有什么想法吗?

1 个答案:

答案 0 :(得分:9)

class是小写的:

class inversionCount:

抛出错误,因为变量Class确实没有定义; python区分大小写,Classclass不同;前者被视为变量名称,而class是关键字。

如果您使用解释器运行代码,则会抛出语法错误; PyDev的解释略有不同。