python3 如何启用按名称打印单个 link 列表元素的功能
python3 How to enable the function that print the singly-link list elements by type it's name
如你所知,可以通过输入列表变量名来打印列表元素,所以我想实现与列表done相同的可以打印单个link列表元素的功能。
class Node():
"""create node"""
def __init__(self, elem):
self.elem = elem
self.next = None
class SingleLinkList():
"""create singly-linked list"""
def __init__(self, node=None):
self.__head = node
def add(self, item):
'''add elements in the list header'''
node = Node(item)
node.next = self.__head
self.__head = node
l1 = SingleLinkList()
l1.add(2)
l1.add(3)
#when type print(l1) instead of l1.some_function(), the terminal will show the elements in the l1 from head to tail
print(l1)
......
谢谢。
您需要实施 __str__
方法。
试试这个:
class Node():
"""create node"""
def __init__(self, elem):
self.elem = elem
self.next = None
class SingleLinkList():
"""create singly-linked list"""
def __init__(self, node=None):
self.__head = node
def add(self, item):
"""add elements in the list header"""
node = Node(item)
node.next = self.__head
self.__head = node
def __str__(self):
elems = []
node = self.__head
while node:
elems.append(str(node.elem))
node = node.next
return ', '.join(elems)
l1 = SingleLinkList()
l1.add(2)
l1.add(3)
print(l1)
输出:
3, 2
如你所知,可以通过输入列表变量名来打印列表元素,所以我想实现与列表done相同的可以打印单个link列表元素的功能。
class Node():
"""create node"""
def __init__(self, elem):
self.elem = elem
self.next = None
class SingleLinkList():
"""create singly-linked list"""
def __init__(self, node=None):
self.__head = node
def add(self, item):
'''add elements in the list header'''
node = Node(item)
node.next = self.__head
self.__head = node
l1 = SingleLinkList()
l1.add(2)
l1.add(3)
#when type print(l1) instead of l1.some_function(), the terminal will show the elements in the l1 from head to tail
print(l1)
......
谢谢。
您需要实施 __str__
方法。
试试这个:
class Node():
"""create node"""
def __init__(self, elem):
self.elem = elem
self.next = None
class SingleLinkList():
"""create singly-linked list"""
def __init__(self, node=None):
self.__head = node
def add(self, item):
"""add elements in the list header"""
node = Node(item)
node.next = self.__head
self.__head = node
def __str__(self):
elems = []
node = self.__head
while node:
elems.append(str(node.elem))
node = node.next
return ', '.join(elems)
l1 = SingleLinkList()
l1.add(2)
l1.add(3)
print(l1)
输出:
3, 2