<p>也许你在找<a href="https://pythontips.com/2013/09/29/the-python-yield-keyword-explained/" rel="nofollow noreferrer">^{<cd1>}</a>关键字。Yield本质上是将函数转换为一个生成器,它将不断返回值,直到到达末尾。你知道吗</p>
<pre><code>def get_pos_tag(string):
detM =['un','le']
nomM =['garçon','verre','chair']
#Entréé
test = nltk.word_tokenize(string)
#Pos-Tag de chaque entréé
for i in range(0,len(test)):
#Déterminant masculin singulier
if test[i] in detM:
CAT = "Det"
Nb = "Sg"
GND = "M"
yield test[i],":","CAT:",CAT,",","Genre:",GND,",","Nombre:",Nb
#Nom Masculin Singulier
elif test[i] in nomM:
CAT = "N"
Nb = "Sg"
GND = "M"
yield test[i],":","CAT:",CAT,",","Genre:",GND,",","Nombre:",Nb
</code></pre>
<p>您可以对其进行迭代,或直接将其转换为列表:</p>
<pre><code>for val in get_pos_tag(string):
print(val)
# or
print(list(get_pos_tag(string)))
</code></pre>
<p>另外,文件末尾的<code>return get_pos_tag(string)</code>(在所有其他函数之外)实际上什么都不做(我不确定它是否有效)</p>
<hr/>
<p>问题澄清旧答案:</p>
<p>这是因为您没有从<code>get_pos_tag()</code>内返回任何内容,而只是调用<code>print</code>。<code>print()</code>函数不传输任何值,只显示它们。你知道吗</p>
<p>无论哪里有<code>print()</code>函数,都要用<code>return</code>替换它。你知道吗</p>