How to return two values from a function and then use both of them as parameters within the parameter of another function as two parameters
所以我对编码是个新手,这是我的第一个问题,所以如果格式不正确,我道歉。
我正试图找出如何组合(get_x_start)和(get_x_end)函数其中x是给这对函数指定的唯一名称这样,每个返回(field)和(end)的x都有一个函数。我只是用了一个列表:
1 | return (field,end) |
但是当我尝试的时候,我不知道如何在(main())中使用那些作为独立的参数,这样函数(fetch_data)就可以使用单个x函数返回的两个参数。
我的代码如下。如果有什么不清楚,请告诉我,我会尽力澄清。谢谢。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | def get_data (url): response = url return str(response.read()) def fetch_data (field,data,end): sen = data[data.find(field)+len(field)+3:data.find(end)-3] return sen def get_name_start (data): field ="Name" return field def get_name_end (data): end ="ClosingTime" return end def get_open_start (data): field ="OpeningTime" return field def get_open_end (data): end ="Name" return end def get_close_start (data): field ="ClosingTime" return field def get_close_end (data): end ="CoLocated" return end def main (): import urllib.request data = get_data (urllib.request.urlopen('http://www.findfreewifi.co.za/publicjson/locationsnear?lat=-33.9568396&lng=18.45887&topX=1')) print (fetch_data(get_name_start(data),data,get_name_end(data))) print (fetch_data(get_open_start(data),data,get_open_end(data))) print (fetch_data(get_close_start(data),data,get_close_end(data))) main () |
这里是一个返回元组的函数
1 2 | def return_ab(): return 5, 6 |
这里是一个接受三个参数的函数
1 2 | def test(a, b, c): print(a, b, c) |
这里是如何调用
1 | test(*return_ab(), 7) # => 5 6 7 |
关键点是
从这里,可以像这样返回多个变量
1 2 3 4 5 | def f(in_str): out_str = in_str.upper() return True, out_str # Creates tuple automatically succeeded, b = f("a") # Automatic tuple unpacking |
从这里,您可以将变量传递到新函数中,如下所示:
1 | new_f(succeeded, b) |
希望这有帮助