当我尝试为反转计数算法实现一个简单的类时,为什么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确实是一个类。有什么想法吗?
答案 0 :(得分:9)
class
是小写的:
class inversionCount:
抛出错误,因为变量Class
确实没有定义; python区分大小写,Class
与class
不同;前者被视为变量名称,而class
是关键字。
如果您使用解释器运行代码,则会抛出语法错误; PyDev的解释略有不同。