将参数传递给 Python 函数

Pass parameter into Python function

我有一个接受 Beautiful Soup 对象的函数,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

那么我该如何传递呢?

通过传递 lambda,您可能会获得最大的灵活性和最少的麻烦:

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))