使用函数的结果作为搜索条件

时间:2018-04-17 09:26:42

标签: python function

我想将函数def elliptic()的第一个结果插入到第二个函数entity_noun()中。在第二个函数中,它找到具有特定值属性的节点。我希望从第一个函数的返回值中检索此值(引号"??????"中的字符串)。

from bs4 import BeautifulSoup

def elliptic():
    last_a_tag = soup.find_all("sn", elliptic="yes")
    for item in last_a_tag:
            entity = item.get('entity')  
    return(entity)

def entity_noun():
    ent = soup.find(entity="??????")    
    noun = ent.find('n')
    return(noun)

你有什么建议怎么做吗?

2 个答案:

答案 0 :(得分:1)

你有两个功能。应该调用函数来返回结果。 如果你做这样的事情:

from bs4 import BeautifulSoup

def elliptic():
    last_a_tag = soup.find_all("sn", elliptic="yes")
    for item in last_a_tag:
            entity = item.get('entity')  
    return(entity)

def entity_noun():
    ent = soup.find(entity=elliptic())    
    noun = ent.find('n')
    return(noun)

entity_noun()

您将致电entity_noun()致电elliptic()

另一种选择是使用参数:

from bs4 import BeautifulSoup

def elliptic():
    last_a_tag = soup.find_all("sn", elliptic="yes")
    for item in last_a_tag:
            entity = item.get('entity')  
    return(entity)

def entity_noun(X):
    ent = soup.find(entity=X)    
    noun = ent.find('n')
    return(noun)

A=elliptic()
entity_noun(A)

在这种情况下,您将调用第一个函数elliptic()将结果保存在A中,然后将A传递给entity_noun()。使用第二种方法,每个函数将彼此保持独立,因此可以在不同的上下文中独立使用。

答案 1 :(得分:1)

您可以在参数中传递调用函数的结果。

所以在这种情况下你会这样做:

ent = soup.find(entity=elliptic())