クラスを特別な値として使用するのはPythonで醜いですか?
このことを考慮:
def find_result():
result = None
# do something to find the result, even recursing
return result
r = find_result()
if r is None:
raise Exception("we have no result")
結果が数値または「通常の」タイプであると予想される場合、これは完全に機能します。
しかし、任意のデータ構造があり、その結果がNone
別の構造に変換される場合はどうなるでしょうか? 私の場合、私がしたことは次のようなものでした:
class NoResult:
"""i'm even less than `None`."""
pass
def query(data, path):
result = NoResult
# traverse and recurse into the data structure
return result
r = query()
if r is NoResult:
raise Exception("our hands are empty")
それは機能しますが、私はここの貧しい階級を少し虐待しているという気持ちを揺るがすことはできず、内部に本当の危険が潜んでいる可能性さえあります.
本当ですか?私はクラスを悪用していますか?それとも、このような「特別な」に依存する必要がある場合、私のアルゴリズムが悪いだけNone
ですか?