[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 07/24 13:04 / Filesize : 241 KB / Number-of Response : 994
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Pythonのお勉強 Part68



1 名前:デフォルトの名無しさん mailto:sage [2022/09/15(木) 18:52:26.67 ID:VqLViKoX0.net]
!extend:default:vvvvv:1000:1024
!extend:default:vvvvv:1000:1024
↑スレ立てる毎に減るので、減ってたら3つに補充すること。

・当スレにRubyのソースコード類を書くことを禁ず
・Ruby等、Pythonではないプログラミング言語での回答類・質問を書くのも禁止
・「Ruby では」「Rubyでは」「Rails」正規表現→「^クソチョンw$」をNGワード登録推奨
・エラーを解決したいときは、かならず
 エラー文(勝手に省略orスクショうp等の横着禁止)と
 おま環(Pythonのバージョン番号+OS名とバージョン+IDE名)を書け。

★Pythonのソースコードを5ちゃんに直貼はインデントが崩壊するので、
  ↓等のコードうp用サイトに貼ってきてくだしあ。(スクリーンショットをうpる「横着」禁止)
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定がCなので、Pythonするには言語種選択ボタン押下がピコ手間かも。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その57
mevius.5ch.net/test/read.cgi/tech/1653225908/

〇前スレ〇
Pythonのお勉強 Part67
https://mevius.5ch.net/test/read.cgi/tech/1653540315/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured

499 名前:デフォルトの名無しさん mailto:sage [2022/10/26(水) 23:32:56.52 ID:3tunJph20.net]
すべてが…

500 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 00:18:45.07 ID:F/o6kN8OM.net]
韓国人は強姦魔
処刑すべし!

501 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 00:19:10.85 ID:H28rwqsV0.net]
>>488
ウホッありがとな※

502 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 22:55:12.85 ID:5KytWWZZ.net]
FastAPI気軽に使えて良いわ
自動で/docs作られるからUI作んの完全に後回しにできる

ついでにSQLModelも、と思ったけどrelationship周りがエラー出たり出なかったりおかしかったが原因がわかった
SQLAlchemyのバージョンが最新のものだrelationshipが効かない、1.4.35だといける・・
あとCRUDの並行処理は無理ぽいかも。
これらさえなければ個人でさくっとお気軽にウェブアプリ作るフレームワークとして完璧なんだが

503 名前:デフォルトの名無しさん mailto:sage [2022/10/27(木) 23:14:24.71 ID:9zZ/mg550.net]
tortoiseはどうですか

504 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 00:04:09.43 ID:aYQ1muJl0.net]
ちょんだらけw

505 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 01:57:08.28 ID:dcIx+1f70.net]
>>496
https://fastapi.tiangolo.com/tutorial/sql-databases/
ユーザじゃないけどこれ読んだかぎりセッションを自前で管理してないからじゃ
仕組みは用意してないと書いてる

506 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 08:27:01.13 ID:aYQ1muJl0.net]
ちょんてさ、半島に帰れば差別されないのに絶対に半島に帰らないよね?

それは、日本が平和で豊かで、
日本人はみな親切だからです。

なのにちょんは差別されてると妄想をいだいて
日本人女性を強姦しまくってる!

ちょんは皆殺しにするしかない!

507 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 08:47:10.38 ID:aYQ1muJl0.net]
半島に絶対帰らないちょんw
日本人は犯罪者に親切し過ぎる!



508 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 09:16:34.07 ID:lPPjHZ9qa.net]
発作か

509 名前:デフォルトの名無しさん mailto:sage [2022/10/28(金) 10:42:02.56 ID:6fPFyEs10.net]
統一教会が追い詰められてきたから焦ってるんだろ

510 名前:デフォルトの名無しさん [2022/10/30(日) 03:06:48.95 ID:9F5gJDkR0.net]
Python初心者ですが新事実を発見しました
クラスのメンバ変数はデフォルト値が設定してあっても
コンスタントラクタで初期化しないかぎり、別に生成したクラスobjと共有されてるようです
リストとか特定の変数限定かもしれないですが

511 名前:デフォルトの名無しさん [2022/10/30(日) 03:14:13.07 ID:9F5gJDkR0.net]
具体的にこれですが


class A :
L = []
def __init__(self): pass

class X :
L = []
def __init__(self): self.L = []

a = A()
a.L.append(7)
b = A()
print(b.L) # 新規生成なのに値が入ってる

a = X()
a.L.append(7)
b = X()
print(b.L) # 正常
print(a.L) # 正常

512 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 04:02:03.41 ID:2IVXofav0.net]
それはメンバ変数でなくてクラス変数だからだよ

513 名前:デフォルトの名無しさん [2022/10/30(日) 04:51:48.91 ID:9F5gJDkR0.net]
そういうことか

Pythonでクラス変数とインスタンス変数を取り違えてハマった
https://qiita.com/7shi/items/d37493c58a8bb8d7beed

514 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 05:37:36.99 ID:q24pCrd50.net]
韓国人は神さま!
全財産を寄進せよ!
マンセー!

515 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:07:55.87 ID:PYm3clPCM.net]
>>505
pythonから入った者には
そらそうだろとしか思わないw
たぶんオレは他言語扱えないな

516 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:49:05.29 ID:2N6ePwSn0.net]
他の言語でも同等の機能を持つものはあるけどpythonはどちらの変数なのかを明示しないから混乱し易い

517 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 07:56:11.62 ID:WAC/PohS0.net]
どっちも同じに見えるのはその方が便利だと思ったんだろうか
必要なら使う側で見分け付くように名前を付ければいいという柔らか運用



518 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:30:50.67 ID:2N6ePwSn0.net]
>>511
> どっちも同じに見えるのはその方が便利だと思ったんだろうか
変数宣言をしないって言うポリシーなので最初に使った場所で決めるようにした/せざるを得なかったじゃないかなって思ってる

> 必要なら使う側で見分け付くように名前を付ければいいという柔らか運用
使う側はそれでいいけど宣言する人が勘違いしてたら意味ないわけで...

519 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:44:46.72 ID:YV/Jz1Xt0.net]
つい最近同じように、クラスを覚えようと
「python class」でググった一番上のサイトにやられた

https://camp.trainocate.co.jp/magazine/python-class/

クラス変数もインスタンス変数もめちゃくちゃだった

520 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 08:51:51.63 ID:KYgyTmU4M.net]
クラス変数をself.でアクセスしない運用にすれば取り敢えず解決

521 名前:デフォルトの名無しさん [2022/10/30(日) 08:58:13.36 ID:ejVjSPjsH.net]
self.__class__.foo
self.FOO

522 名前:デフォルトの名無しさん [2022/10/30(日) 11:40:59.42 ID:0ss8sts10.net]
質問です。
requestsを使って画像をダウンロードする時、
一定のサイズ以下の物をダウンロードしないようにしたいです。
どのようにするといいでしょう?

523 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:00:39.70 ID:Ofy0PT2CM.net]
>>516
どうすればいいって
自分で質問して自分で答え言ってるじゃん

524 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:02:51.23 ID:o3zlfJHfa.net]
streamを有効にして、ちびちびと確認しつつ取得

525 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:03:47.95 ID:o3zlfJHfa.net]
事前にわかってりゃその時点で止めればいいけどね

526 名前:デフォルトの名無しさん [2022/10/30(日) 12:10:52.74 ID:0ss8sts10.net]
>>519
つまり一度ダウンロードしてからcv2等でサイズを確認し、
OKならリネームして保存、NOなら削除
という感じでしょうか?

527 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:28:08.24 ID:WAC/PohS0.net]
そうでないことは質問者なんだから判ってるだろうに



528 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:37:02.73 ID:0WCgMjCVM.net]
requests ファイルサイズってググれば一番上に出てくる

529 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:37:56.59 ID:o3zlfJHfa.net]
サイズって、実データのサイズじゃなくて画像のピクセル数とか色のサイズってこと?

530 名前:デフォルトの名無しさん [2022/10/30(日) 12:41:23.93 ID:ejVjSPjsH.net]
画像のサイズっていう文脈なら俺はim.sizeとかを想定するなー
request文脈なら容量のサイズだけどな!

531 名前:デフォルトの名無しさん [2022/10/30(日) 12:41:44.93 ID:0ss8sts10.net]
すいません。
質問の仕方がまずかったです。
画像の横幅とか縦幅の方のサイズのことです。
横幅350px以下の画像をダウンロードする時に除外したいのです。

532 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:46:32.71 ID:o3zlfJHfa.net]
まあフォーマットによっては頭だけ読めばわかるけど…

533 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 12:59:12.74 ID:WAC/PohS0.net]
元々はサイズなんか判らん、というプロトコルがあって、
それでは不便だからと建て増しで追加してるから、
判る場合も判らない場合も

534 名前:あるんだよな
判ったとしても嘘をついている場合もある
[]
[ここ壊れてます]

535 名前:デフォルトの名無しさん [2022/10/30(日) 13:09:28.80 ID:0ss8sts10.net]
>>527
なるほど
そんな事情があるとは知りませんでした。

オンライン上でサイズを調べるのは無理そうなので、
一度ダウンロードしてから仕分けるようにします。

ご迷惑をおかけしてしまいすいません。
ありがとうございました。

536 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 13:18:51.61 ID:XddGgynb0.net]
パッとヘッダ見た感じjpegなら0xA3にWORD値で高さ、0xA5に幅、どちらもリトルエンディアン
pngなら0x10にDWORD値で高さ、0x14に幅、リトルエンディアン
って感じだね
上手くヘッダの一部だけダウンロードして画像サイズを得る関数を作ればトラフィック軽減になるかも?

537 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 14:39:50.92 ID:XddGgynb0.net]
暇だから作ってみたおじさん
https://ideone.com/2Bakfp



538 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 15:26:12.39 ID:VC4EQr6u.net]
デザインパターンのSingletonパターンって必要ですかね・・
結局なんらかのカウンターで一元管理することになりませんか・・

539 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 15:49:28.81 ID:Hd1qfqu50.net]
バイトコードってヒープ領域に格納されてvmに渡されるのですか?

540 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 16:53:19.41 ID:pkba5bNo0.net]
>>529
ビッグエンディアンね
jpegは画像サイズが含まれるセグメントの位置が固定ではないので決め打ちは危険

541 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 16:56:31.04 ID:40a1nlTva.net]
>>531
使わないほうが良いものである

542 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:24:05.37 ID:yaCBWxQaa.net]
>>532
そうです
内部的にはPyCodeObjectという形で実装されています

543 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 17:53:38.94 ID:Hd1qfqu50.net]
>>535
ありがとうございます!

544 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 18:13:35.82 ID:CDidbViTM.net]
>>504
他言語触ってて
先に型ヒントつけて宣言しとこで同じ間違いしたわ

545 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 19:10:27.11 ID:XddGgynb0.net]
>>533
本当だ逆に覚えてた恥ずかしい
JPEGはサイズ前の5byteが共通っぽかったから>>530ではFF C0 00 11 08を検索するようにしてみたけどFF C0後の3byteは可変っぽいね
そもそも1KB以内にサイズ情報があるかも分からないのか

546 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:05:03.89 ID:q24pCrd50.net]
ここは朝鮮人のスレ
チョッパリはくるな!

547 名前:デフォルトの名無しさん mailto:sage [2022/10/30(日) 23:53:08.68 ID:vrlOFY0H0.net]
発作か



548 名前:デフォルトの名無しさん [2022/10/31(月) 14:05:35.97 ID:j6J+ogvNM.net]
>>531
なんないよ

549 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 02:33:37.39 ID:mmiO/WJW0.net]
不特定の文字・数字・記号、またそれらの組み合わせを意味する表記で記入する方法を教えて下さい

[123456aaaあ井う~〜」
↑みたいなのがあったとして、数字や文字は毎回変わる、場合によっては桁数が変わったりもする
テキストファイル内で上記のパターンの文字列を見つけて、その前の位置で改行を入れるみたいなことをしたいです

イメージですが下記みたいに表して a に代入しておいて
[123456aaa文字] → [%%% ¥¥¥¥¥¥¥¥] or [%(桁数)¥(桁数)]

replace(a,”/n”+a) でテキストファイルを書き換えるようなことって可能ですか?

550 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 02:42:25.93 ID:mmiO/WJW0.net]
誤字 /n → \n

551 名前:デフォルトの名無しさん [2022/11/01(火) 03:36:18.46 ID:I1aopbaSM.net]
なるほどわからん

552 名前:デフォルトの名無しさん [2022/11/01(火) 08:16:26.34 ID:xJk+jZok0.net]
これは煽りではなく真面目なアドバイスなんだが、プログラミングより国語を勉強した方がいい
その言語能力だと難しいと思う

553 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:30:28.54 ID:mmiO/WJW0.net]
222tq2tq2tq269ああ%64agaoiwahaio.59gagagahai3a.t69a 5>22gahaiiha

この文字列を

222tq2tq2tq269
ああ%64agaoiwaha
io.59gagagahai3a.t69
a 5>22gahaiiha

この出力結果にするにはどうすれば良いですか? なら大丈夫ですかね?
この場合だと「文字列2つ + 記号1つ + 数字2つ」のパターンを見つけて改行したい

554 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:48:28.70 ID:p4TXbqbPa.net]
じゃあそのパターンで改行すれば…
正規表現でいいんじゃないかな

555 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 08:51:40.09 ID:CMvcSOEo0.net]
このスレよりも、正規表現のスレで聞けば?

556 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:10:51.89 ID:tDs0tp7pM.net]
オホダナー
そうだよオホダヨ~

557 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:37:37.84 ID:mmiO/WJW0.net]
>>547
その正規表現の表記の方法がよく分からないです

123abcdeあいう

“\d{3}\w*.{3}”

これじゃダメみたいで、どう表記するのが正解なのか分かる方いたら教えて欲しいです



558 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 09:48:17.04 ID:mmiO/WJW0.net]
できました。ありがとうございました

559 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 10:42:07.10 ID:HBYRkZVUa.net]
正規表現の勉強がてらやってみた
https://ideone.com/vPYWtM

最後の1行はマッチしないね

560 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 11:08:19.56 ID:mmiO/WJW0.net]
表記自体は合っていたのですが、re.match()でやってたせいで出力されなかったみたいで、re.search()に変えるだけで解決しました

561 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 12:13:10.09 ID:vww+azZz0.net]
matchは使わずに
search(r'^なにか')
でいいよな
fullmatchは^と$で

^や$を使うなというのであれば、$だけ使うパターンも整備されていないと不完全

562 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 16:21:24.69 ID:GYf/ELerM.net]
俺は君にマッチしたい※

563 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 16:40:02.94 ID:1fqXVNhi0.net]
正規表現に関してはrubyやperlみたいに演算子にしてしまうのがベストだと思う
searchだとかmatchだとかregexpだとかmatch_allだとか覚えられんて

564 名前:デフォルトの名無しさん [2022/11/01(火) 17:42:07.83 ID:59UjWoGEM.net]
命名とかAPI設計がイケてない
match、search、fullmatch・・・
たまにしか使わない人は諦めて毎回リファレンス参照するしかない

565 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 17:59:02.79 ID:vww+azZz0.net]
list.append()が破壊的だったかすら忘れてぐぐる

566 名前:デフォルトの名無しさん (ワッチョイ 8b89-g96c) mailto:sage [2022/11/01(火) 22:54:57.42 ID:w1dGDiRI0.net]
覚えられないのではない
覚えないという選択をしているのだ
覚えるために何か工夫したのか?

567 名前:デフォルトの名無しさん (ワッチョイ 9109-iO6U) [2022/11/01(火) 22:55:36.13 ID:EqpfaKBX0.net]
イテレータ判定されるのにfor できないんですが
イテレータとはforができるものではないんですか


X = type("")
if hasattr(X, '__iter__') :
for x in X : pass



568 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 23:34:09.39 ID:yhai460Y0.net]
X(= str)じゃなくXのインスタンスならそう

569 名前:デフォルトの名無しさん mailto:sage [2022/11/01(火) 23:43:36.24 ID:vww+azZz0.net]
覚えないといけない時点でおかしい
理解すれば覚えなくていいのが正解

list.append()は破壊的で、str.replace()は非破壊であることに、
合理的な説明は無い
その方が便利なことが多そうだからとか、メモリの都合とか、
一旦そう決めちゃったからとか、そんな理由に過ぎない

570 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:26:44.23 ID:WNjxQYpUM.net]
list.appendは配列の終わりにつけるだけ
str.replaceは配列の途中に差し込む可能性があるからでは?
メモリ操作のコストが違うじゃん

571 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:47:23.04 ID:ul/vZuFO0.net]
配列が格納してある後ろに空きスペースがたくさん確保してあるならそうだろうけど
で、コストが実際に違ったとしてもそんなことは知らんがなでしかない

572 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 00:58:46.26 ID:I1Z+o8fX0.net]
みんな知ってることだけど、listはmutableでstrはimmutableだからだよ。
これでもう各関数が破壊的かどうかいちいち覚える必要はなくなったね!

573 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 01:00:03.55 ID:WNjxQYpUM.net]
listはある程度後ろに確保してるしコストが実際に違ったらそれは明確に合理的な理由でしょ

574 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 01:17:00.86 ID:jyU6y3CY0.net]
>>565
これ
まあそういうものとして覚えるしかないわけだけど

575 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 07:59:09.20 ID:cbFKoHcVM.net]
べつに目的の物が作れればどうでもいいんじゃないの?
ミッションクリティカルなモノをコレで作ったりするのかな?

576 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:06:12.06 ID:FQ1wBQnh0.net]
listに後ろとか関係なくない?

577 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:21:15.39 ID:1xZXeW2Ya.net]
linkedなリストは関係ないよな
連続したメモリに入ってる配列的なやつはアレだけど



578 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 11:39:42.36 ID:FQ1wBQnh0.net]
>>570
str との違いも結局これだし

579 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 14:55:39.24 ID:VFt43YlcM.net]
pythonのリストはポインタの配列でしょ?

580 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:15:12.19 ID:1xZXeW2Ya.net]
違います

581 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:27:31.11 ID:jyU6y3CY0.net]
PyObject*の配列です

PyObject **ob_item; // PyObject*の配列
Py_ssize_t allocated; // アロケートされてる個数

582 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:28:55.28 ID:jyU6y3CY0.net]
cpythonなソースは読みやすい

583 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:42:15.13 ID:ul/vZuFO0.net]
0から255までの数字が入った要素数1000の配列があって、
Cだとunsigned char list[1000];
みたいに宣言してlist[i]で参照するとアドレス計算で値を取ってくるけど、
pythonはどうやってるの?

584 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:43:56.47 ID:4MCwg8YuM.net]
ちょっと調べた限りやっぱりPythonのリストはポインタの配列だと思うんだが違うっていうなら何か教えて
insertの遅さとかで連結リストではないとは思うけど

585 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:51:59.96 ID:wyluLqIy0.net]
>>574が正しい
https://github.com/python/cpython/blob/main/Include/cpython/listobject.h

586 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 18:55:42.08 ID:jyU6y3CY0.net]
cpythonのソースはマジで読みやすい
Rubyとかもうぐちゃぐちゃしてて読めねえもん

587 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:05:34.74 ID:jyU6y3CY0.net]
実際の配列のサイズはPyObject_VAR_HEADマクロのob_sizeに入ってる



588 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:12:23.01 ID:1xZXeW2Ya.net]
>>577
別になんでもいいんです

589 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:14:41.69 ID:5K2+hbiBa.net]
答え書かれてるのに全く分かってなくて草

590 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:30:34.65 ID:1xZXeW2Ya.net]
大学行くと実装と仕様の区別がつくようになるかも?

591 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:31:01.29 ID:l50Y39h10.net]
>>574
つまりポインタの配列

592 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:31:44.66 ID:ul/vZuFO0.net]
listにappendすると、ポインタの配列の末尾にポインタが追加される
配列のサイズが変わるので、サイズを増やした配列を作ってコピーしないとできない
筈なのに、idを調べると変わらない

**ob_itemに入ってる値は変わるけど、**ob_item自体のアドレスは変わらない
ということ?

593 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:33:58.87 ID:l50Y39h10.net]
組み込みだから作り直した配列にidがコピーされてたり

594 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:36:39.11 ID:oCOyjRuB0.net]
VM上は指すオブジェクト変わってないのにid変わったらあかんでしょ

595 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:00.28 ID:rAnbDRgM0.net]
適当にリンクリストあたりかと思ってた

596 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:29.11 ID:ul/vZuFO0.net]
appendしても同じオブジェクトという時点で違和感があるんだよな
明らかに別物やん

仮にappendが非破壊で
list = list.append()
とした時にidが変わる方が納得できる

597 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:40:29.75 ID:5K2+hbiBa.net]
>>585
逆だよ
ob_item自体は大きさが変わる時にreallocでアドレスが変わるけど
中身の方はポインタをコピーするだけだから変わらない



598 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:42:07.37 ID:1xZXeW2Ya.net]
>>577
違うって理解できた?

599 名前:デフォルトの名無しさん mailto:sage [2022/11/02(水) 19:51:27.03 ID:5K2+hbiBa.net]
>>589
そもそもが全部Cで実装されてるんだからそういうメモリモデルなんだ、という理解で良いと思うよ






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<241KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef