Python
1 if ch == 0: 2 self.crd_0() 3 if ch == 1: 4 self.crd_1() 5 if ch == 2: 6 self.crd_2() 7 if ch == 3: 8 self.crd_3() 9 if ch == 4: 10 self.crd_4()
場合分けでch入る番号ごとに呼び出す関数(self.crd_x)を変えるのですが、
0,1,2,3,4を呼び出すのにif分でその数分呼び出すのは迂遠な気がして。
関数の呼び出しで添え字って使えないのでしょうか
self.crd[ch]
とか出来ればif文で長々と場合わけしなくてすむわけですが。もちろん、
Python
1def crd[0] 2 プログラム
のようなカタチは許されていないようですが、何かスマートな方法ってないでしょうか?
引数を使えば良いのでは。
例えばこんな感じでしょうか。
funcs = {0: self.crd_0, 1: self.crd_1, 2: self.crd_2, 3: self.crd_3, 4: self.crd_4}
funcs[ch]()
def funcs[0]()
aaa=0
bbb=1
かといって、
def funcs(a)
みたいなカタチにしても、そうすると定義先でif分けしないといけないですし
こういうカタチで関数を定義するとエラーが出るのですが……
def funcs[0]()
aaa=0
bbb=1
こういうカタチで関数を定義するとエラーが出るのですが……
かといって、
def funcs(a)
みたいなカタチにしても、そうすると定義先でif分けしないといけないですし

回答2件
あなたの回答
tips
プレビュー