Python用lamda投げ異常実現方法解析


もし関数が必要であれば、何もしないで、ただ異常を投げます。
def func():
ライセException(「this a exception」)
このような簡単な機能だけで、私達はラダで実現したいです。自然に下記のコードを書きました。lambda :raise Exception("this is a exception")残念ですが、これはいけません。SyntxError:invalid syntaxのエラーが発生します。具体的な原因はPython Lambadaを見ることができます。
次のコレクションはいくつかの有用な奇術を実践しています。
方法1func = lambda: (_ for _ in ()).throw(Exception('this is an exception'))方法2
異常情報が気にならないなら、func = lambda: 1/0理解にかたくないです。この関数はZero DivisionErrを投げかけます。この方法は実は一つの種類を表しています。例えば、書いてもいいです。func = lambda : [][0]このような実装は、lamdaの後に書いたら、必ず異常な表現が出ます。
方法3
非常に陰険な方法で、python 3.xにしか適合していません。func = lambda : exec('raise(Exception("this is an exception"))')方法四:
まだ読んでいない
ヽoo。ツ
type(lamda:0)(type(lamda:0).func_コード
1,1,67,'''0\'202\\1\0',(),('x','','',1,'')
)(Exception()
または
ヽoo。ツ。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
type(lamda:0)(type(lamda:0)._ucode(u)(
1,0,1,67,b'\0\202\1\0',(),('x',)'',1,b')
)(Exception()
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。