私は、形容詞/名詞のペア(「良い猫」など)を探している文章を解析するPython関数を持っています。そのようなペアのリストを返します。ここでは、次のとおりです。なぜこのPython関数がNoneを返すのか分かりません。ローカルではありません。
def traverse(t):
thelist = list()
try:
t.label()
except AttributeError:
return
else:
if t.label() == 'NP':
for leaf in t.leaves():
thelist.append(str(leaf[0]))
print("The list is ",thelist)
return thelist
else:
for child in t:
traverse(child)
ので、同様に、私はこの関数を呼び出す:私は何を得る
print("traversing the tree returned ",traverse(pos_parser))
はこれです:
The list is ['good', 'cat']
traversing the tree returned None
だから、トラバースで変数 "thelist" を作成し、出力しますそれを返さない(代わりにNoneを返す)。なぜ??
誰かが助けてくれますか?
の可能性のある重複した[再帰コードNoneを返す](http://stackoverflow.com/q/22311440/953482) – Kevin
注:暗黙的属性のエラーで復帰戻り値なし –
デバッガでステップ実行を試みましたか?それはAttributeError例外に当たっていますか? –