Python コードを書いていて文字列前後の空白を削除する必要があった。
うっかり trim() と書いたんですけど、こんな例外が。
教えてくれてありがとう、Python では strip() でしたね。
いやぁ筆者を含めて Javascript と混同する人が多いんだろうな。
てかいつのまにこんな親切な例外表示になったんだ?
What’s New In Python 3.10 ? Python 3.10.4 ドキュメント
特に記述は無いけど Better error messages の一つかな。
そんなこんなで上記ページを初めて見たんですけど。
あら Python にもとうとう switch 文が、いや match ですけど。
と思ったんですけど何か変。
break いらないの?
#!/usr/bin/gjs
function func(num) {
switch(num) {
case 1:
print('one');
//break;
case 1:
print('once again');
//break;
default:
print('default!');
}
}
func(1);
/* output
one
once again
default!
*/
switch 文だとこうなる、C 言語等も同様。
#!/usr/bin/env python3
def func(num):
match num:
case 1:
print('one')
case 1:
print('nce again')
case _:
print('default!')
func(1)
''' output
one
'''
なるほど、だから switch ではなく match か。
というかコレ if-elif-else の別表記でしかないんだな。
以上とか未満みたいな case はできないみたいだし使い所は微妙。
読みやすくなるかわりに階層が深くなるデメリットも。
でも一番問題なのは。。。。。
Gedit や gnome-text-editor で現状では強調表示されないことかも。
# Gedit /usr/share/gtksourceview-4/language-specs/python3.lang # gnome-text-editor /usr/share/gtksourceview-5/language-specs/python3.lang
に自分で追記すればイケるはず、必要ならばだけど。
4 が GTK3 で 5 が GTK4 なのよ、バージョンがややこしくなったもんだ。

