我创建了一个类和函数。 该函数正在创建一个新对象并执行其他操作,并返回该对象。
class DoublyLinkedList:
def __init__(self, element):
self.item = element
self.before = None
self.after = None
def __str__(self):
if self.before is None:
return f'Previous node : {None}, item : {self.item}, Next node : {self.after.item};'
elif self.after is None:
return f'Previous node : {self.before.item}, item : {self.item}, Next node : {None};'
else:
return f'Previous node : {self.before.item}, item : {self.item}, Next node : {self.after.item};'
def addToHeadDLL(element, head):
try:
name = DoublyLinkedList(element)
except NameError:
print('Please enter correct parameters')
else:
head.before = name
name.after = head
print('List added to Head')
return name
a = DoublyLinkedList(1)
b = DoublyLinkedList(2)
a.after = b
b.before = a
c = addToHeadDLL(3, a) #Works
d = addToHeadDLL(4, e) #Produces NameError
当NameError发生时,它必须打印“请输入正确的参数”。 但是输出是这样的,
List added to Head
Traceback (most recent call last):
File "c:/Users/JBallipalli/Desktop/Codes/dll.py", line 43, in <module>
d = addToHeadDLL(4, e)
NameError: name 'e' is not defined
请帮我解决这个。。。
当您调用函数时,会返回NameError
,因为python不知道要将什么作为E
传递。
它永远不会到达AddToHeaddLL
中的异常处理部分。
不要在函数中使用try
和except
,
如果您想要NameError
,那么调用try块中的函数AddToHeaddLL
。
像那样
try:
d = addToHeadDLL(4, e) #Produces NameError
except:
print("Name error")
d = addToHeadDLL(4, e) #Produces NameError
你在哪里定义变量e的值?