Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将参数传递到Python函数中_Python_Function_Beautifulsoup - Fatal编程技术网

将参数传递到Python函数中

将参数传递到Python函数中,python,function,beautifulsoup,Python,Function,Beautifulsoup,我有一个接受对象的函数,soup 我还想给它传递一个变量,告诉它如何处理soup。现在的功能是: def get_info(soup): info = soup.findAll('div',{'id':'hideinse'})[0]('a',href=True) #do stuff 但是我想做的是在这一行中传递findAll('div',{'id':'hideinse'})[0]('a',href=True),而不是作为一堆字符串。我不希望它总是findAll之类的,所以我想尝

我有一个接受对象的函数,
soup

我还想给它传递一个变量,告诉它如何处理
soup
。现在的功能是:

def get_info(soup):
    info = soup.findAll('div',{'id':'hideinse'})[0]('a',href=True)
    #do stuff
但是我想做的是在这一行中传递
findAll('div',{'id':'hideinse'})[0]('a',href=True)
,而不是作为一堆字符串。我不希望它总是
findAll
之类的,所以我想尝试一下,但不确定如何:

def get_ifno(soup, parse_line):
     info = soup.parse_line
     #do stuff

那么我该如何传递呢?

通过传递lambdas,您可能会以最少的头痛获得最大的灵活性:

def get_info(callback):
    info = callback()

get_info(lambda: soup.findAll('div',{'id':'hideinse'})[0]('a',href=True))

鉴于所需内容的复杂性,您应该采用调用方可以提供的函数:

def get_info(soup, parse_line):
    info = parse_line(soup)

get_info(soup, lambda x: x.findAll('div',{'id':'hideinse'})[0]('a',href=True))