背景 -作為專案的一部分,我創建了 2 個函式,以使用來自entities_list和 的值進行 API 呼叫views_list。第一個函式def user_inputs()要求 2 個用戶輸入作為整數值(使用 v.basic 錯誤處理)。第二個函式def url_constructor()遍歷 2x 串列中的值(使用嵌套回圈)并為我的 API 呼叫構造 URL,然后將 URL 保存在 中url_list,然后后一個函式將處理 API 呼叫。
我的問題 -我在訪問entities_list和時遇到問題views_list,特別是從 my 回傳串列def user_inputs()并在def url_constructor()
我的代碼 -你可以從這個函式中看到,我已經return分別嘗試了兩個串列。沒有任何問題,我可以毫無問題地將我的值輸入到串列中 -
def user_inputs():
while True:
try:
entities_list = [int(x) for x in input("Entities for API Call:\n").split(', ')]
except ValueError:
print("---ERROR: MUST BE COMMA SEPERATED VALUES---")
return entities_list
continue
break
while True:
try:
views_list = [int(x) for x in input("Views for API Call:\n").split(', ')]
except ValueError:
print("---ERROR: MUST BE COMMA SEPERATED VALUES---")
return views_list
continue
break
return entities_list, views_list
user_inputs()
但是,我們為我的 運行以下代碼塊def user_inputs(),我得到一個NameError: name 'entities_list' is not defined-
def url_constructor(entities_list, views_list):
str = 'https://some_url/{}/view{}'
for entity in entities_list:
for view in views_list:
url = str.format(entity, view)
url_list.append(ur)
url_constructor(entities_list, views_list)
我不是在找人為我做我的作業,但只是引導我朝著正確的方向前進。非常感謝您的幫助!
uj5u.com熱心網友回復:
看下面的例子并嘗試應用到你的代碼中
def foo():
list_a = [5]
list_b = [12]
return list_a,list_b
def bar(lst):
print(lst)
a,b = foo()
bar(a)
uj5u.com熱心網友回復:
我認為你需要:
entities_list, views_list = user_inputs()
否則,從 user_inputs 函式回傳的值會被丟棄,因為它們沒有分配給任何東西。
提示:你也可以這樣做:
url_constructor(*user_inputs())
https://docs.python.org/3/tutorial/controlflow.html#unpacking-argument-lists
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358033.html
下一篇:如何查找傳遞給函式的物件名稱
