Pythonのお勉強 Part75 (973レス)
Pythonのお勉強 Part75 http://mevius.5ch.net/test/read.cgi/tech/1743698824/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
673: デフォルトの名無しさん (ワッチョイ 7601-AJBo) [sage] 2025/08/10(日) 15:53:58.39 ID:BWOE9N0b0 >>666 >652に対する批判の文脈でどういう意味合いを持たせたかったのかはよく分からないな >>648に書いてるのと同じなんだけど箱を箱のまま入れ物として取り扱う状況と箱を箱の中身が示す値として取り扱う状況の説明なくそれらを無意識に使い分けながら「一貫した説明ができる」と言ってるのを自覚して欲しかったとでも言えばいいだろうか http://mevius.5ch.net/test/read.cgi/tech/1743698824/673
674: デフォルトの名無しさん (ワッチョイ 0754-mJPu) [sage] 2025/08/10(日) 15:57:29.66 ID:rGiN2SBN0 代入という訳語の気が利きすぎてるんだよな assignのニュアンスそのままなら代入は出てこない 単に関連付けをしてるだけ 代わりに入れるという何か動きを持った訳語にしたせいで、逆に理解を阻害する http://mevius.5ch.net/test/read.cgi/tech/1743698824/674
675: デフォルトの名無しさん (ベーイモ MM06-ZDX3) [sage] 2025/08/10(日) 16:00:48.44 ID:VcYsNhlgM >>672 setには、ある既存の構造を正しく整った状態へと変えるというニュアンスがある 単なる変数の代入は変数の中身をまるっと置き換えているだけで既存の構造を変化させているわけではないし、 新しい値もそれが正しく整ったものとは限らず、ごく一時的なものだったりする なのでより直接的なassignが用いられる http://mevius.5ch.net/test/read.cgi/tech/1743698824/675
676: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 16:14:57.79 ID:swuUdv2c0 >>675 Pythonの話なら私は知らない。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/676
677: デフォルトの名無しさん (ワッチョイ f64c-1ngM) [sage] 2025/08/10(日) 16:46:12.05 ID:wmWYPlFf0 Pytnonの言語仕様として「代入文」という名称で規定されているんだから、ひとまずこのスレで「代入」と呼ぶことには何の問題もないと思うけどね。それが数学における代入概念とは意味が違うから別の呼び方をすべきだというのは1つの意見としては傾聴に値すると思うけど、それはまた別の話でしょ。 >>673 それは661でコンテキスト(状況)として挙げられた要素に対応する違いであるか甚だ疑問だし、そもそも「箱を箱の中身が示す値として取り扱
う」というようなふわっとした理解だから混乱するのでは。 大前提として、①名前と②名前が束縛されるメモリ領域(=箱)とは区別される概念だけどこれはいい? それから、②名前が束縛されるメモリ領域(=箱)と③そこに格納されている実体(オブジェクト・値)も区別される概念だけどこっちはいいよね。たぶん、①②の区別が曖昧だから「箱を箱の中身が示す値として取り扱う」というような表現が出てくるんだと思うけど。 注意すべきは「変数」という用語の多義性で、この語は上記①〜③のいずれを
指すか曖昧なまま使われがち。かつそういう曖昧な認識のまま「変数=箱」という説明がされがちなので混乱が起きるんだと思うけどね。なお、そういう観点からいうと、646の「箱=値」という表記の仕方も(直感的にはわかりやすいけれども)こういう曖昧な理解を助長する弊害はあるんだろう。 上記のような概念的な区別がきちんとできている限り、コンテキスト(状況)如何で変わるような話ではないということは理解しやすいと思うけどどうかな(あるいは、必要なのは概念的な区別であって、コンテキスト(状況)の場合分けではないという言い方をしても
良い)。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/677
678: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 17:03:01.76 ID:swuUdv2c0 箱は伝統的なプログラミング入門書が使うわかりにくい例えだしな それより丸数字の使用が気になるぞ http://mevius.5ch.net/test/read.cgi/tech/1743698824/678
679: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 17:11:26.30 ID:swuUdv2c0 ドキュメンテーションのない仕事をしているのがはっきりとわかるよなあ http://mevius.5ch.net/test/read.cgi/tech/1743698824/679
680: デフォルトの名無しさん (ワッチョイ f64c-1ngM) [sage] 2025/08/10(日) 17:15:06.72 ID:wmWYPlFf0 メモリ領域を箱に例えるのはコンピューターのアーキテクチャーに忠実な良い例えだと思うけどね。Pytnonみたいな言語ではC言語レベルに還元しないと正確な理解に到達できないという憾みはあるが、それでもラベル(名札・荷札)のアナロジーのような曖昧なイメージに頼るよりよほど良いと思うよ。 ところで、丸数字って今でも読みづらく化けたりする? 5chみたいなところで使う分には、もう、そんなに気にしなくても良い時代かなと思っていたんだが。
http://mevius.5ch.net/test/read.cgi/tech/1743698824/680
681: デフォルトの名無しさん (ワッチョイ 0754-mJPu) [sage] 2025/08/10(日) 17:20:18.25 ID:rGiN2SBN0 一番気になるのは改行しないことだな http://mevius.5ch.net/test/read.cgi/tech/1743698824/681
682: デフォルトの名無しさん (ワッチョイ 7601-AJBo) [sage] 2025/08/10(日) 18:04:10.77 ID:BWOE9N0b0 >>677 >>652から引用すると「y = x は(C言語レベルでは)名前(変数)yが束縛されているメモリ領域(646風にいえばyという箱)にオブジェクト"foo"のアドレス情報を入れるという形で処理されることになる。」 ここでは何の説明もなくxが「オブジェクトfoo"のアドレス情報」に変換されてるよね? 同じxでも直前の`x=“foo”`のxは箱のまま入れ物として取り扱われていたが `y = x`のxは箱の中身が指し示す値として取り扱
われている その違いを生むのがxが評価されるコンテキストの違い http://mevius.5ch.net/test/read.cgi/tech/1743698824/682
683: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 18:34:46.42 ID:swuUdv2c0 アセンブラのニーモニックが辞書を片手に見るか、覚えていないといけないのをわかりやすく表現しただけのものをマシン語の並び順すら知らずにこねくり回した説明をしているのは滑稽 http://mevius.5ch.net/test/read.cgi/tech/1743698824/683
684: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 18:45:58.86 ID:swuUdv2c0 >>682 CPUのレジスタがメモリのような連続した長いものでないため、コンピューターではレジスタで収まるものとそうでないものの区別がある。 コンピューターそのものがCPUとメモリという別のものを組み合わせているから、メモリへの参照なのかどうかは曖昧にしたまま進化しただけ。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/684
685: デフォルトの名無しさん (ワッチョイ f64c-1ngM) [sage] 2025/08/10(日) 19:11:26.73 ID:wmWYPlFf0 >>682 何の説明もなくって、代入文の右辺の式が評価されるのは代入文の言語仕様そのままでしょ。何か不明確な点ってある? 代入文の左辺か右辺かの違いもコンテキスト(状況)の違いであって、そのいずれであるかによって言語処理系による名前(変数)の扱いが異なるという趣旨のことを主張したいのなら別に積極的に異論をとなえるつもりもないけれども、それについて、Pytnonの言語リファレンス等で明らかになっていることに付け加えて何か説
明しなきゃいけないことってあるかな? 「箱自体を値として使う場合」(648)とか「箱を箱の中身が示す値として使う状況」(673)というのは概念上の区別が不十分であることに基づく不正確な表現・理解だと思うけど、その点が正された後になお何か理解できない点があるの? http://mevius.5ch.net/test/read.cgi/tech/1743698824/685
686: デフォルトの名無しさん (ワッチョイ 3e5f-ZDX3) [sage] 2025/08/10(日) 19:30:23.90 ID:EbzyEcBr0 2のオブジェクトがあって x=2だとxは2のオブジェクトを参照? オブジェクトどんだけ先に用意すんの? http://mevius.5ch.net/test/read.cgi/tech/1743698824/686
687: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 19:32:17.91 ID:swuUdv2c0 >>686 コードに2と書いてある時点で、2もメモリ上に存在しているんだよ? http://mevius.5ch.net/test/read.cgi/tech/1743698824/687
688: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 19:32:51.39 ID:swuUdv2c0 >>685 はただの老害 http://mevius.5ch.net/test/read.cgi/tech/1743698824/688
689: デフォルトの名無しさん (ワッチョイ f64c-1ngM) [sage] 2025/08/10(日) 19:35:35.63 ID:wmWYPlFf0 2がオブジェクトであることは print( id( 2 ) ) とかしてみれば分かる。 よく使う整数はあらかじめ生成しているんじゃなかったっけ。どの範囲かは以前このスレで見たような気がするが忘れちゃった。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/689
690: デフォルトの名無しさん (ワッチョイ 0754-mJPu) [sage] 2025/08/10(日) 19:36:05.96 ID:rGiN2SBN0 数値もオブジェクトと知った時点でその疑問に行き当たるよな 文字列がオブジェクトなのは、文字列自体が格納されたアドレスだから普通に判る 数値は整数どころか浮動小数点数でもオブジェクトで、事前に用意したら無限に要る 単にオブジェクトは必ずしもアドレスじゃなくて、数値をbit表記したものが渡されるだけ http://mevius.5ch.net/test/read.cgi/tech/1743698824/690
691: デフォルトの名無しさん (ワッチョイ f64c-1ngM) [sage] 2025/08/10(日) 19:48:29.35 ID:wmWYPlFf0 RubyとかJavaScriptと違ってPytnonは即値を使わず全部PyObjectじゃなかったっけ? 正直、記憶が曖昧なので自信はないが。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/691
692: デフォルトの名無しさん (ワッチョイ 1a79-MCtg) [sage] 2025/08/10(日) 20:18:34.90 ID:WEeWhG2x0 このあたりの話かな https://docs.python.org/ja/3/c-api/long.html PyObject *PyLong_FromLong(long v) 戻り値: 新しい参照。 次に属します: Stable ABI. v から新たな PyLongObject オブジェクトを生成して返します。失敗のときには NULL を返します。 現在の実装では、-5 から 256 までの全ての整数に対する整数オブジェクトの配列を保持します。この範囲の数を生成すると、実際には既存のオブジェクトに対する参照が返るようになっています。
http://mevius.5ch.net/test/read.cgi/tech/1743698824/692
693: デフォルトの名無しさん (ワッチョイ 7a0a-WVpU) [] 2025/08/10(日) 21:54:22.66 ID:swuUdv2c0 Pythonは後になって「オブジェクト」という用語を使い始めた誤魔化し集団。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/693
694: デフォルトの名無しさん (ワッチョイ de01-AJBo) [sage] 2025/08/10(日) 23:13:13.88 ID:ZpaHmpjx0 >>685 言語仕様はおろかプログラミングにおける代入を理解してないような初心者に対して代入文とはどういうものか説明しようとして「箱 = 値」というアナロジーを使ってるんでしょ? なのに説明できてない箇所を指摘すると「それは言語仕様を知ってればわかるからいいよね?文句ある?」みたいな開き直りをされても失笑するしかないよ http://mevius.5ch.net/test/read.cgi/tech/1743698824/694
695: デフォルトの名無しさん (ワッチョイ 232c-1ngM) [sage] 2025/08/10(日) 23:31:54.49 ID:wxvmtlzV0 >>694 646は、「言語仕様はおろかプログラミングにおける代入を理解してないような初心者に対して代入文とはどういうものか説明しようとして「箱 = 値」というアナロジーを使ってる」のかもしれないが、自分はそんなつもりは全くないな。652や656で書いたような説明をそんな初心者が理解できるわけないでしょ。Pytnonのような言語の代入文をきちんと理解するにはそれなりに前提知識がいる。それが大変だから、ラベル(名札・荷札)のアナロジー
のような、そこそこ良い線はいっているけれども本質的な理解からは隔たりがある説明が蔓延しているわけで。 http://mevius.5ch.net/test/read.cgi/tech/1743698824/695
696: デフォルトの名無しさん (ワッチョイ 174f-Fa+d) [] 2025/08/11(月) 10:30:52.65 ID:hg5eV/6v0 CPUはレジスタに根渡ししてるだけなのにな 高級言語は余計なことやりすぎなんだよ http://mevius.5ch.net/test/read.cgi/tech/1743698824/696
697: デフォルトの名無しさん (ワッチョイ 9a02-QbuV) [sage] 2025/08/11(月) 12:14:18.55 ID:oIjo7VRO0 AIを作ってるが、 Pythonは型が明記されてないから、わかりずらいな… C++のほうが見やすい http://mevius.5ch.net/test/read.cgi/tech/1743698824/697
698: デフォルトの名無しさん (ワッチョイ b680-kDJb) [] 2025/08/11(月) 12:23:50.21 ID:M47h2EOs0 正直俺もどうにかC++に持ってこれないか無駄な努力してる whisperとかはありがたい設計なんだけど翻訳系がなー boost::pythonもcythonも結構Cじゃ完結しないのね http://mevius.5ch.net/test/read.cgi/tech/1743698824/698
699: デフォルトの名無しさん (ワッチョイ 5a4e-a/Iv) [] 2025/08/11(月) 14:33:28.70 ID:uBk9CY7Y0 C++なら値なのか参照なのかポインタなのか一目で分かるからな 上の議論もc++なら一発で解決する http://mevius.5ch.net/test/read.cgi/tech/1743698824/699
700: デフォルトの名無しさん (ワッチョイ 0754-mJPu) [sage] 2025/08/11(月) 14:38:05.58 ID:Xx9EOjxc0 deepcopy必須な再帰呼び出しをリファクタリングしてたらすっきり書けすぎて、 deepcopy部分が暗黙になってしまって逆に危険に http://mevius.5ch.net/test/read.cgi/tech/1743698824/700
701: デフォルトの名無しさん (ワッチョイ 3e3e-ZDX3) [sage] 2025/08/12(火) 04:07:24.02 ID:nMX81I590 >>687 そうなんだけどさ 整数いくつ準備してんの あらかじめ http://mevius.5ch.net/test/read.cgi/tech/1743698824/701
702: デフォルトの名無しさん (ワッチョイ 4e10-1ngM) [sage] 2025/08/12(火) 08:04:19.47 ID:i9fPXIIb0 >>701 >>692 http://mevius.5ch.net/test/read.cgi/tech/1743698824/702
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 271 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.010s