【发布时间】:2014-12-01 09:10:05
【问题描述】:
我真的希望我能在这里更具体一点,但我已经阅读了相关问题,但似乎没有一个与我在这里遇到的问题有关,而且我不了解我遇到的问题。这是一个家庭作业,所以我犹豫是否要为该程序提供所有代码,这是一个精简版。编译这个,你会看到问题。
import copy
class Ordering:
def __init__(self, tuples):
self.pairs = copy.deepcopy(tuples)
self.sorted = []
self.unsorted = []
for x in self.pairs:
self.addUnsorted(left(x))
self.addUnsorted(right(x))
def addUnsorted(self, item):
isPresent = False
for x in self.unsorted:
if x == item:
isPresent = True
if isPresent == False:
self.unsorted.append(left(item))
在这里,我创建了一个类 Ordering,它采用 [('A', 'B'), ('C', 'B'), ('D', 'A')] 形式的列表(其中 a 必须在 b 之前,c 必须在 b 之前,等等)并且应该以偏序形式返回它。我正在调试我的代码以查看它是否正常工作,但由于我收到的错误消息,我还不能。
当我在终端中输入以下内容时:
print Ordering[('A', 'B'), ('C', 'B'), ('D', 'A')]
我收到以下错误消息:
Traceback (most recent call last): File "<stdin>", line 1, in (module) Type Error: 'classobj' object has no attribute '__getitem__'
这是为什么?!
【问题讨论】:
-
您可能已经注意到,您的演示代码使用了未定义的函数
left()、right()
标签: class python-2.7 object types instantiation