关于python 3.x:如何从一个函数中返回两个值,然后将它们作为另一个函数的参数中的两个参数来使用

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)

这里是如何调用test()函数的方法,通过它传递return_ab()返回但未封装的两个参数

1
test(*return_ab(), 7) # => 5 6 7

关键点是return_ab()前面的星号。这是一个相对较新的语法,确实非常有用…


从这里,可以像这样返回多个变量

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)

希望这有帮助