下記のような複雑に入り組んだif文をコード上から消して、設定をクラスとしてまとめたい
python
1def test(): 2 if "条件1": 3 if "条件2": 4 """処理1""" 5 """処理2""" 6 elif "条件3": 7 """処理3""" 8 else: 9 """処理4"""
#試したこと
enumとdictでif文に相当するところをクラスにまとめた。
見た目上、ifは消えたがそれに相当するkansu()を読む際、下から処理を追っていく必要があり読みづらい。
直観的に処理追えるようにしたい(もしくは別の方法で解決したい)
python
1from enum import Enum 2 3class Matome(Enum): 4 one = "処理1()" 5 two = "処理2()" 6 three = "処理3()" 7 four = "処理4()" 8 9 @classmethod 10 def kansu(cls, res1: bool, res2: bool, res3: bool): 11 third = { 12 True: A.three, 13 False: A.four 14 } 15 second = { 16 True: A.one, 17 False: A.two 18 } 19 first = { 20 True: second.get(res2), 21 False: third.get(res3) 22 } 23 return first.get(res1) 24 25def test(): 26 Matome.kansu( 27 res1=bool("条件1"), 28 res2=bool("条件2"), 29 res3=bool("条件3") 30 ) 31
回答1件
あなたの回答
tips
プレビュー