class DLLNode(object):
def __init__(self, data, prev_link, next_link):
self.data = data
self.prev_link = prev_link
self.next_link = next_link
class DoublyLinkedList(object):
def __init__(self):
self.head=None
self.tail=None
def add_head(self, add_obj):
self.head=DLLNode(add_obj,None,self.head)
>>> x=DoublyLinkedList
>>> x.add_head(1)
Traceback (most recent call last):
File "<pyshell#20>", line 1, in <module>
x.add_head(1)
TypeError: add_head() takes exactly 2 arguments (1 given)
指定给x时,需要创建对象的实例
前一种语法(DoubleLinkedList)是允许的,因为类作为对象是有效的。
当你写作时
将类
DoublyLinkedList
分配给x
,而不是它的实例。add_head
作为实例方法,不能直接在类上调用。相反,你需要使用这样,python就可以用
x
替换self
,您的调用将有两个参数。猜测x不算参数,因为它没有被正确实例化。
不是
不包括parens将
DoublyLinkedList
模块对象分配给x,它不会创建新对象。相关问题 更多 >
编程相关推荐