Why is PyDev giving me this error: “Class variable undefined” when I try to implement a simple class for an inversion counting algorithm? Here’s my code:
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)
yet PyDev is failing to recognize that inversionCount is indeed a class. Any thoughts?
classis lowercase:The error is thrown because the variable
Classis indeed not defined; python is case sensitive andClassis not the same thing asclass; the former is seen as a variable name, whileclassis a keyword.If you were to run your code with the interpreter, it’ll throw a syntax error instead; PyDev’s interpretation is slightly different.