从 运行 停止函数两次
Stop function from running twice
作为评估项目的一部分,我必须包括网络设备的库存管理功能。特别是 - 添加设备、删除设备、更改数量和列出所有设备。目前卡在“添加设备”上。运行时,系统会提示用户提供 3 个输入:
- 设备密钥(例如“R”代表路由器 - 稍后使用,以便用户可以轻松调用对象)
- 设备名称
- 设备数量
这些存储在字典数组中。在函数 add_new_device()
中,我包含了一个带有 if
语句的错误检查 - 所以如果用户输入现有的密钥或设备名称,他们会收到一条消息提示,然后函数是再次调用以重新启动 add_new_device()
函数。
问题: 假设使用输入“R”作为设备密钥(它已经存在)。消息会提示,功能会重启。然后完成密钥、名称和数量的输入后,上次调用的设备名称和数量将完成执行。
如何终止当前函数调用,并启动函数调用的新实例?
def add_new_device():
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n > MAIN MENU > SHOW OR EDIT INVENTORY > ADD NEW DEVICE")
new_device = {}
print ("\nPlease enter a key for your device - e.g. "R" for Router")
new_devkey = input("\n\n Device key: ")
new_device["dev_key"] = new_devkey
if any(x["dev_key"] == new_devkey for x in devices_all):
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n DEVICE KEY ALREADY EXISTS!")
print(" PLEASE ASSIGN A DIFFERENT KEY")
time.sleep(1)
### KILL CURRENT FUNCTION CALL HERE ###
add_new_device()
new_devname = input(" Device name: ")
new_device["dev_name"] = new_devname
if any(y["dev_name"] == new_devname for y in devices_all):
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n DEVICE NAME ALREADY EXISTS!")
print(" PLEASE ASSIGN A DIFFERENT NAME")
time.sleep(1)
### KILL CURRENT FUNCTION CALL HERE ###
add_new_device()
new_device["dev_quantity"] = input(" Device quantity: ")
devices_all.append(new_device)
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n SUCCESSFULLY ADDED NEW DEVICE")
print("\n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")
return new_device
你可以
return add_new_device()
而不仅仅是:
add_new_device()
作为评估项目的一部分,我必须包括网络设备的库存管理功能。特别是 - 添加设备、删除设备、更改数量和列出所有设备。目前卡在“添加设备”上。运行时,系统会提示用户提供 3 个输入:
- 设备密钥(例如“R”代表路由器 - 稍后使用,以便用户可以轻松调用对象)
- 设备名称
- 设备数量
这些存储在字典数组中。在函数 add_new_device()
中,我包含了一个带有 if
语句的错误检查 - 所以如果用户输入现有的密钥或设备名称,他们会收到一条消息提示,然后函数是再次调用以重新启动 add_new_device()
函数。
问题: 假设使用输入“R”作为设备密钥(它已经存在)。消息会提示,功能会重启。然后完成密钥、名称和数量的输入后,上次调用的设备名称和数量将完成执行。
如何终止当前函数调用,并启动函数调用的新实例?
def add_new_device():
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n > MAIN MENU > SHOW OR EDIT INVENTORY > ADD NEW DEVICE")
new_device = {}
print ("\nPlease enter a key for your device - e.g. "R" for Router")
new_devkey = input("\n\n Device key: ")
new_device["dev_key"] = new_devkey
if any(x["dev_key"] == new_devkey for x in devices_all):
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n DEVICE KEY ALREADY EXISTS!")
print(" PLEASE ASSIGN A DIFFERENT KEY")
time.sleep(1)
### KILL CURRENT FUNCTION CALL HERE ###
add_new_device()
new_devname = input(" Device name: ")
new_device["dev_name"] = new_devname
if any(y["dev_name"] == new_devname for y in devices_all):
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n DEVICE NAME ALREADY EXISTS!")
print(" PLEASE ASSIGN A DIFFERENT NAME")
time.sleep(1)
### KILL CURRENT FUNCTION CALL HERE ###
add_new_device()
new_device["dev_quantity"] = input(" Device quantity: ")
devices_all.append(new_device)
print("\n––––––––––––––––––––––––––––––––––––––––––––––––––––––––––")
print("\n SUCCESSFULLY ADDED NEW DEVICE")
print("\n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . ")
return new_device
你可以
return add_new_device()
而不仅仅是:
add_new_device()