我在StackOverflow上看到过其他这样的例子,但是我不明白任何答案(我还是一个新程序员),也不明白我看到的其他例子看起来和我的很像,否则我不会发布这个问题。
我在Windows7上运行Python3.2。
我以前从来没有遇到过这种情况,我也曾多次这样上课,所以我真的不知道这次有什么不同。唯一的区别是,我没有生成所有的类文件;我得到了一个模板来填写,一个测试文件来尝试。它对测试文件起作用,但对我的文件不起作用。我一直以与测试文件完全相同的方式调用类中的方法(例如,Lineup.size())
这是我的课:
class Queue: # Constructor, which creates a new empty queue: def __init__(self): self.__items = [] # Adds a new item to the back of the queue, and returns nothing: def queue(self, item): self.__items.insert(0,item) return # Removes and returns the front-most item in the queue. # Returns nothing if the queue is empty. def dequeue(self): if len(self.__items) == 0: return None else: return self.__items.pop() # Returns the front-most item in the queue, and DOES NOT change the queue. def peek(self): if len(self.__items) == 0: return None else: return self.__items[(len(self.__items)-1)] # Returns True if the queue is empty, and False otherwise: def is_empty(self): return len(self.__items) == 0 # Returns the number of items in the queue: def size(self): return len(self.__items) # Removes all items from the queue, and sets the size to 0: def clear(self): del self.__items[0:len(self.__items)] return # Returns a string representation of the queue: def __str__(self): return "".join(str(i) for i in self.__items)
这是我的程序:
from queue import Queue
Lineup = Queue()
while True:
decision = str(input("Add, Serve, or Exit: ")).lower()
if decision == "add":
if Lineup.size() == 3:
print("There cannot be more than three people in line.")
continue
else:
person = str(input("Enter the name of the person to add: "))
Lineup.queue(person)
continue
elif decision == "serve":
if Lineup.is_empty() == True:
print("The lineup is already empty.")
continue
else:
print("%s has been served."%Lineup.peek())
Lineup.dequeue()
continue
elif (decision == "exit") or (decision == "quit"):
break
else:
print("%s is not a valid command.")
continue
这是我输入“add”作为决策变量时的错误消息:
第8行,in builtins.AttributeError:“Queue”对象没有属性“size”
那么,这是怎么回事?这个有什么不同?
Python 3已经有了一个
queue
模块(您可能想看看)。当您import queue
时,Python会在找到您的queue.py
文件之前找到该queue.py
文件。将
queue.py
文件重命名为my_queue.py
,将import语句更改为from my_queue import Queue
,代码将按您的意愿工作。尝试重命名其他名称的大小或对列表项实现计数器,如
相关问题 更多 >
编程相关推荐