2017-02-17 3 views
0

終了条件をチェックするために関数を呼び出すと、break文を返せますか?次のようなものがあります:Python - break文を返す

def check(): 
    return break 

def myLoop: 
    while myLoop: 
     check() 

このようなものはありますか?私は書かれた構文が有効ではないことを知っています。

答えて

2

いいえ、残念ながらそのようには機能しません。戻り値をチェックしてから、呼び出し元のループを抜け出す必要があります。もちろん

while myLoop: 
    result = check() 
    if result == 'oh no': 
     break 

、あなたがやろうとしているものに応じて、それだけのような単純なものがあります。それはインタプリタによって異なって処理されるように

result = check() 
while result != 'oh no': 
    result = check() 
+0

Ah、ok。答えをありがとう! – jylny

1

breakがキーワードではなくオブジェクトであります、link。 Python関数はオブジェクトなどを返すだけです。

あなたはとき奥深く機能ループから抜け出すにしたい場合は、一つの方法は、例外を使用することです:

class BreakException(Exception): 
    pass 

は、どこかの関数で例外を上げる:

def some_func(): 
    raise BreakException() 

そして、あなたを

try: 
    while True: 
     some_func() 
except BreakException: 
    pass 

私はこれが良い習慣だとは思わないが、somを見たことがあるそれを使用するe言語、Scala(例:link)。

+0

ああ、知っておきたいことです。間違いなく危険だと思われますが、私はそれを念頭に置いています。ありがとう! – jylny