44378


`def __lt__`のメソッドで条件に応じて`True`または`False`を返してくるようにしていますが、メソッドの最後の行に`return
False`があるので結局すべて`False`で返ってきてしまうと思いました。ただ、条件文にしたがって正しく返してくれるのですがそれがなぜなのかと、このコードの必要性が理解できないです。

[code]

    class Para:
        def __init__(self, para1):
            self.para1 = para1
    
        def __lt__(self, other):
            if self.para1 < other.para1:
                return True
            else:
                return False
            return False   #このリターンを書く意味がわからない。
    
    para1 = Para(1)
    para2 = Para(2)
    print(para1 < para2)
    print(para1 > para2)
    
    >>>True
    >>>False
    
[/code]


CC BY-SA 4.0
2018-05-29T15:33:58.523
44374
2018-05-29T17:03:01.073
2018-05-29T15:52:35.007
3060
28645
question
python python3
以下のコードでreturnの返してくる値がなぜそうなるのかわからない。


おっしゃるとおりで、今回のコードにおいて当該の `return False` に到達することはありません。Dead code
になっています。動作を考える限りは、この行は不要です (あるいは、else 節が不要です)。

ここからは推測ですが、質問者さんの[以前のご質問](https://ja.stackoverflow.com/q/44262/19110)に載っていたコードでは今回のものと比べて一段深く
if がネストしており、当該の `return False`
にあたる部分が意味を持っていました。もし今回のコードが前回のものを参考にしたものであるなら、こういった経緯で打ち間違えたのではないかと予想します。


CC BY-SA 4.0
2018-05-29T16:48:00.220
44378
2018-05-29T17:03:01.073
2018-05-29T17:03:01.073
19110
19110
44374
answer