Pythonのお勉強 Part75 (989レス)
Pythonのお勉強 Part75 http://mevius.5ch.net/test/read.cgi/tech/1743698824/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
965: デフォルトの名無しさん (ワッチョイ 258f-MlPs) [sage] 2025/10/04(土) 13:03:57.65 ID:lfhYKLud0 >>964で指摘されている点は、インタプリタ上で特別扱いしないと対応できない(通常の関数の枠内では処理できない)というのは分かるんだけど、逆にいうと、インタプリタが特別扱いをするのであれば、関数呼び出しのインターフェイスをすることもできなくはないわけでしょう。 assert文の2つ目の式にAssertionErrorに渡す引数を指定するという構文は直感的に分かりにくいなと以前から思っていて、仮に関数呼び出しのインターフェースで呼べるならそんなに違和感ないなとちょっと思っただけ。積極的にそうした方がいいとかそうすべきと主張するつもりはないよ。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/965
966: デフォルトの名無しさん (ベーイモ MM2b-G6c+) [sage] 2025/10/04(土) 13:49:26.07 ID:Lrd6UCHyM >>965 Pythonだと通常の関数呼び出しになってたら特別扱いは難しい 別のraise関数が定義されてるかもしれないからな じゃあraiseという名前だけをキーワードとして特別扱いするか?それraise文と何が違うの? ってこと http://mevius.5ch.net/test/read.cgi/tech/1743698824/966
967: デフォルトの名無しさん (ワッチョイ 25c4-MlPs) [sage] 2025/10/04(土) 14:08:02.28 ID:lfhYKLud0 仮に特別扱いするなら、raise を一種のキーワードとすることになるんだろうね。raise文との違いは構文。もともとraise文の構文ってちょっと分かりにくくないかというのが元の発想だからね。 どちらかというと、raise文の構文は直感的にちょっと分かりにくいので関数呼び出し風の構文糖があったら良かったのに……という方が言いたいことに近いかもしれない。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/967
968: デフォルトの名無しさん (ワッチョイ 0d54-DOAI) [sage] 2025/10/04(土) 14:18:48.32 ID:ZS4Jz9di0 そんな形式上のものはシンタックスシュガーでどうにでもなる http://mevius.5ch.net/test/read.cgi/tech/1743698824/968
969: デフォルトの名無しさん (ワッチョイ 3d01-UAuC) [sage] 2025/10/04(土) 15:12:23.29 ID:cv59dmAz0 仮にraiseを関数化するとしたらビルトイン関数になるわけでキーワードとして特別扱いするのとは違う ビルトイン関数を別のraise関数で上書きしたならその時の動作は上書きした人が責任を持てばいい ただraiseとassertを同じカテゴリで話すのはどうかと思う raiseはreturn, break, continue, yieldなどと同じcontrol flow statementなので通常関数とは別のカテゴリとして扱うのが言語を使う側にとっても作る側にとっても自然かつ楽 raiseと違いassertはprintなどと同じでビルトイン関数のほうが使う側には自然 コンパイラを改良する労力をかけたくなかったからステートメントのままなんだと思う http://mevius.5ch.net/test/read.cgi/tech/1743698824/969
970: デフォルトの名無しさん (ワッチョイ 25c4-MlPs) [sage] 2025/10/04(土) 15:56:42.08 ID:lfhYKLud0 assert と raise とで区別すべきというのは同感(>>967ではボケていてraiseって書いちゃっているけど、965に書いたとおりこの話は基本的にはassertを想定している)。 ビルトイン関数にするかキーワードにするかというのは正直そんなに意識はしていなかったかな。仮にビルトイン関数にするとしても通常の関数とは異なりインタプリタによる特別扱いが必要なら、いっそキーワードにしてしまう方が簡単なような気もするけど、まぁ、どちらでも良いのかなと。 Pytnonの場合、yieldのような前例があるから同じ構文の中の一定の場合だけを特別扱いするということに比較的抵抗がない文化なのかなとも思うけど、assert に関しては文のままでいい(処理系に手を入れてまで関数っぽいインターフェイスを提供する必要はない)というのが現時点までの開発陣の判断ということよね。個人的にはちょっと残念だけど、まぁ仕方ないのかなとは思う。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/970
971: デフォルトの名無しさん (ワッチョイ 0d54-DOAI) [sage] 2025/10/04(土) 16:09:30.50 ID:ZS4Jz9di0 raiseのノリでexitと書いて何故か終わらない http://mevius.5ch.net/test/read.cgi/tech/1743698824/971
972: デフォルトの名無しさん (ワッチョイ 3d01-UAuC) [sage] 2025/10/04(土) 17:51:28.50 ID:cv59dmAz0 >>970 今後の拡張でコンパイラが利用可能なアノテーションを関数に付与できるような仕組みでもできればそれを活用してassertを関数化する可能性は個人的には十分あると思う 逆にassertだけのためにそういう仕組みを追加したり内部的にもassertという名前縛りで関数呼び出し箇所のbytecodeを出力しないようにする変更は費用対効果的にまずないと思う http://mevius.5ch.net/test/read.cgi/tech/1743698824/972
973: デフォルトの名無しさん (ワッチョイ 43de-MlPs) [sage] 2025/10/04(土) 19:23:00.85 ID:MKE3mvtR0 まぁ、yield と assert とでは色々違うもんね。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/973
974: デフォルトの名無しさん (ワッチョイ ae60-9taF) [] 2025/10/05(日) 05:42:31.29 ID:Wx5pDard0 仮想環境をゴリゴリ作るという観点からanacondaは優秀だと思う。 それ以外は… http://mevius.5ch.net/test/read.cgi/tech/1743698824/974
975: デフォルトの名無しさん (オッペケ Sr75-SPhl) [] 2025/10/05(日) 07:52:01.85 ID:75RY5Ni2r 俺はminiconda http://mevius.5ch.net/test/read.cgi/tech/1743698824/975
976: デフォルトの名無しさん (ワッチョイ ae02-GsXg) [] 2025/10/05(日) 08:44:09.44 ID:/6a5ZxIp0 時代はUV何ですよ!!(´・ω・`) http://mevius.5ch.net/test/read.cgi/tech/1743698824/976
977: デフォルトの名無しさん (ワッチョイ 3133-gAFJ) [sage] 2025/10/05(日) 09:26:26.39 ID:DxOKijn50 >>974 もうuvがいいぞ http://mevius.5ch.net/test/read.cgi/tech/1743698824/977
978: デフォルトの名無しさん (ワッチョイ 0154-vC9d) [sage] 2025/10/08(水) 06:55:25.58 ID:lcCd82qT0 ファイル削除にimport osとかするのがなんか抵抗あったけど、 pathlib使ってるならp.unlink()で良かったんだな http://mevius.5ch.net/test/read.cgi/tech/1743698824/978
979: デフォルトの名無しさん (ワッチョイ 05f9-lCgs) [] 2025/10/08(水) 13:40:49.01 ID:XrXXkqZa0 unlinkって名前わかりにくい気がするけどそういうもんなんかな http://mevius.5ch.net/test/read.cgi/tech/1743698824/979
980: デフォルトの名無しさん (ワッチョイ 0154-vC9d) [sage] 2025/10/08(水) 13:48:26.60 ID:lcCd82qT0 deleteとremoveの違い deleteするとなくなってしまうけど、removeは消えるだけで実体はある unlinkはもっと明示的にいつでも復活できそう http://mevius.5ch.net/test/read.cgi/tech/1743698824/980
981: デフォルトの名無しさん (ワッチョイ 762a-8Ckq) [] 2025/10/08(水) 14:07:17.26 ID:UyQ1K/rS0 >>978 なぜ import os に抵抗があって import pathlib には無いの? http://mevius.5ch.net/test/read.cgi/tech/1743698824/981
982: デフォルトの名無しさん (ワッチョイ 0154-vC9d) [sage] 2025/10/08(水) 14:17:47.05 ID:lcCd82qT0 pathlibは神ライブラリだから openするだけだとしてもPathオブジェクトにしとくと後々役に立つ http://mevius.5ch.net/test/read.cgi/tech/1743698824/982
983: デフォルトの名無しさん (ワッチョイ d5b5-ri6y) [sage] 2025/10/08(水) 20:10:03.79 ID:PPRPrFFf0 >>980 >>982はまだ個人の感想だけど平然とウソ書いてくるのがこわい AIさんかな http://mevius.5ch.net/test/read.cgi/tech/1743698824/983
984: デフォルトの名無しさん (ワッチョイ 3115-jQt6) [sage] 2025/10/08(水) 21:22:40.69 ID:a5q/Ytzw0 スラッシュで文字列とPath結合できるの好き http://mevius.5ch.net/test/read.cgi/tech/1743698824/984
985: デフォルトの名無しさん (ワッチョイ 0154-vC9d) [sage] 2025/10/08(水) 21:27:24.89 ID:lcCd82qT0 パスを文字列で持つこと自体が恐らくアンチパターン http://mevius.5ch.net/test/read.cgi/tech/1743698824/985
986: デフォルトの名無しさん (ワッチョイ 0a66-qIC/) [sage] 2025/10/08(水) 23:11:40.46 ID:DEFvJ9Zk0 ファイル操作が多い場合にはpathlibが便利なのかなとは思うんだけど、そもそもファイル操作自体あまりしないから、いつもpath =r'...' みたいな感じで文字列にしちゃっているわ。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/986
987: デフォルトの名無しさん (ワッチョイ 0154-vC9d) [sage] 2025/10/08(水) 23:14:49.71 ID:lcCd82qT0 読み込む用のファイルがあって、拡張子だけ変えたいとか、 ファイル名の部分に-oldと付けたいとか、別のディレクトリに同じ名前でコピーしたいとか、 そういう操作を正規表現とか駆使しながら頑張って文字列操作するのは、 めんどくさいし読みにくいしバグる 人間がやるべきではない http://mevius.5ch.net/test/read.cgi/tech/1743698824/987
988: デフォルトの名無しさん (ワッチョイ 7610-qIC/) [sage] 2025/10/09(木) 00:23:35.01 ID:YJJHW0Xm0 そういう処理が必要になったら、その時点で検討するって感じかな。もちろん、パスならとりあえずPathオブジェクトにしとけっていう流儀もあると思うけどね。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/988
989: デフォルトの名無しさん (ワッチョイ ee02-hOow) [sage] 2025/10/09(木) 22:53:20.67 ID:QQVMS2V+0 言ってしまえば「動けばよい」「分かればよい」だと思うが 扱おうとしているものを扱うための機能があるのなら、 それは使ってみたいじゃないの http://mevius.5ch.net/test/read.cgi/tech/1743698824/989
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.017s