将参数传递给 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))
我有一个接受 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))