\

Pythonでは、関数から値を返すためにreturn文を使用します。しかし、return文を実行した後にも処理を続行したい場合はどうすればよいでしょうか?この記事では、その方法について説明します。

return後の処理

Pythonでは、return文が実行されると、その時点で関数の実行が終了し、制御が呼び出し元に戻ります。そのため、通常はreturn文の後に書かれたコードは実行されません。

しかし、try/finallyブロックを使用することで、return文の後にも処理を続行することが可能です。

def fun(x):
    try:
        return x * 20
    finally:
        print("Yay! I still got executed, even though my function has already returned!")

print(fun(5))

上記のコードでは、finallyブロック内のprint文がreturn文の後に実行されます。

yieldを使用する

また、yield文を使用することで、関数の途中で値を返しつつ、その後の処理を続行することも可能です。

def node_cut(input_file):
    NODE_LENGTH = 500
    count_output = 0
    node_list=[]
    for line in input_file.readlines():
        if len(node_list) >= NODE_LENGTH :
            count_output += 1   
            yield( node_list,count_output )
            node_list=[]   
        node,t=line.split(',')
        node_list.append(node)

上記のコードでは、yield文が実行されるたびに、node_listcount_outputの値が返され、その後の処理が続行されます。

まとめ

Pythonでは、return文の後にも処理を続行するためには、try/finallyブロックやyield文を使用することができます。これらの機能を活用することで、より柔軟なプログラミングが可能になります。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です