如何实例化 class 并打印值
how to instantiate a class and print the value
希望有人可以在这里给我提示 - 所以我有一个节点 class 应该接收 1 个强制值和一个可选值。思路是return一个链表
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
现在我正在使用这个 class 创建一个链接列表,例如:
Z = Node('Z')
Y = Node('Y', Z)
X = Node('X', Y)
W = Node('W', X)
现在我想写一个接收列表头部并打印它的函数:
def print_reverse(head):
current = head
my_list = []
while current:
current = current.next_node
u = Node(current)
my_list.append(u.value)
print my_list
print_reverse(W)
我面临的问题是我取回了内存地址而不是实际值。
[<__main__.Node object at 0x1033eb390>, <__main__.Node object at 0x1033eb350>, <__main__.Node object at 0x1033eb310>, None]
基本上我不知道如何实例化Node的值。我想取回这个
[ W, X, Y , Z, None]
您需要实现 repr,它应该 return 对象的可打印表示。例如
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
def __repr__(self):
return self.value
https://docs.python.org/2/reference/datamodel.html#object.repr
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
def print_reverse(head):
current = head
my_list = []
my_list.append(current.value)
while current.next_node != None:
current = current.next_node
my_list.append(current.value)
print my_list
Z = Node('Z')
Y = Node('Y', Z)
X = Node('X', Y)
W = Node('W', X)
print_reverse(W)
这会为我运行并打印 ['W'、'X'、'Y'、'Z']。
希望有人可以在这里给我提示 - 所以我有一个节点 class 应该接收 1 个强制值和一个可选值。思路是return一个链表
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
现在我正在使用这个 class 创建一个链接列表,例如:
Z = Node('Z')
Y = Node('Y', Z)
X = Node('X', Y)
W = Node('W', X)
现在我想写一个接收列表头部并打印它的函数:
def print_reverse(head):
current = head
my_list = []
while current:
current = current.next_node
u = Node(current)
my_list.append(u.value)
print my_list
print_reverse(W)
我面临的问题是我取回了内存地址而不是实际值。
[<__main__.Node object at 0x1033eb390>, <__main__.Node object at 0x1033eb350>, <__main__.Node object at 0x1033eb310>, None]
基本上我不知道如何实例化Node的值。我想取回这个
[ W, X, Y , Z, None]
您需要实现 repr,它应该 return 对象的可打印表示。例如
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
def __repr__(self):
return self.value
https://docs.python.org/2/reference/datamodel.html#object.repr
class Node(object):
def __init__(self, value, next_node = None):
self.value = value
self.next_node = next_node
def get_next(self):
return self.next_node
def print_reverse(head):
current = head
my_list = []
my_list.append(current.value)
while current.next_node != None:
current = current.next_node
my_list.append(current.value)
print my_list
Z = Node('Z')
Y = Node('Y', Z)
X = Node('X', Y)
W = Node('W', X)
print_reverse(W)
这会为我运行并打印 ['W'、'X'、'Y'、'Z']。