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


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

【まず1嫁】くだすれPython(超初心者用) その59



1 名前:デフォルトの名無しさん [2023/07/13(木) 18:48:41.56 ID:INS7SIu4.net]
当スレに★Python以外のプログラミング言語での回答類を書くべからず★
派生言語はそれぞれ専スレがある(この板にあるとは限らない)ので、そっち池。
「Ruby」「Rails」「某言語では」「クソチョンw」をNGワード登録推奨。荒らしは、完全スルー放置が一番きらいです。

このスレッドは「お勉強」スレのほうには書き込めない超低レベル、
もしくは質問者自身何が何だか分からない質問を、勇気を持って書き込むスレッドです。
へび使いが優しくコメントを返しますので、お礼は Python の布教と初心者の救済をお願いします。

★エラーを解決したい場合★は、
  表示されたエラーの全文(勝手に省略やスクショうp等の横着クソ行為禁止)と、
  実行環境(Pythonのバージョン・OSとIDEの種類およびバージョン)をシッカリ書くこと。

Pythonの★ソースコードをそのまま5ちゃんに貼るとインデントが崩れてチヌ★
【【【複数の連続半角スペースはなにもなかったことにされる&タブは普通には入れられない】】】掲示板の仕様なので、
プログラム文は↓等の、いわゆるコードうp用サイトに貼ってこいください。
ttps://techiedelight.com/compiler/  Run Code機能あり。
ttp://ideone.com/      デフォ設定はC用のため、言語選択ボタン押下がピコ手間かも。
ttp://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Python公式◇ www.python.org/
◇まとめwiki◇ ttp://python.rdy.jp/wiki.cgi

〇前スレ〇
【まず1嫁】くだすれPython(超初心者用) その58
https://mevius.5ch.net/test/read.cgi/tech/1662514433/

次スレたては >>985 あたりが挑戦する。
### END OF TEMPLATE ###

607 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 11:17:11.06 ID:xqNBz4cX.net]
決めの話でもあるけど半開区間のが書くコードが素直になる

608 名前:デフォルトの名無しさん [2024/05/31(金) 12:39:47.52 ID:9rLTVgTT.net]
スタートオフセットと終了オフセットね
list[x]のxと異なる

609 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 13:52:28.81 ID:ixAaAqDb.net]
そうそう、>>596の言うように、スライスで指定する値は各要素そのものの位置ではなくて、要素と要素の間の位置なんだよね。
0●1●2●3… (●は要素)

これが理解できると、マイナス指定で逆から取り出したりとかもすぐに分かるようになるかと。

610 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:02:02.41 ID:z4TXzonv.net]
ぶっちゃけそれは違う

そういう説明じゃないと理解できない人向けの説明としては意味があると思うけどいつまでも引きずるものじゃない

611 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:08:57.01 ID:MpCbGIxa.net]
べつに問題ないと思うがなあ。
グラフィックスで言う

612 名前:ピクセル座標に対するグリッド座標系の話と同形。 []
[ここ壊れてます]

613 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 15:32:41.83 ID:xqNBz4cX.net]
ここで別の概念を導入しないと習得できないくらいじゃ先が思いやられるってだけで
問題の有無はこれからどこまで取り組むかによる

614 名前:デフォルトの名無しさん mailto:sage [2024/05/31(金) 16:00:35.87 ID:E++g7v66.net]
要素の数はわかりやすいよな
引き算するだけでいいし

615 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 16:32:50.72 ID:2v+0cLbq.net]
デザインパターンでオブジェクト指向を理解し始めたら、オブジェクト指向が廃れてしまった(´・ω・`)



616 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 17:32:13.74 ID:C+czcv7n.net]
GUI作成ツールって無いの?
グラフィックアプリみたいにウィジェットを配置したら、コードを書き出してくれるツール

617 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 17:33:08.15 ID:wmmovTy+.net]
Qt

618 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 19:46:57.51 ID:etHHxabq.net]
wx

619 名前:デフォルトの名無しさん mailto:sage [2024/06/01(土) 20:25:37.00 ID:Zt7v+i4d.net]
Qt Quickもぽとぺたできるけど人少なすぎてな…

620 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 20:22:29.52 ID:MnZ0MIrt.net]
Anaconda3-2024.02-1-Windows-x86_64をインストールしたいのですが、
エラーが出て実行できません。OSはちょっと古くwindows7になります。

インストールしている最中、このようなエラーが発生します。
最初は『Failed to extract packages』のエラーです
略すと、パッケージの抽出に失敗しました。と言う内容です。

『無視』を押してインストールを進めると今度は、
Failed to link extracted packages to C:\Anaconda! というエラーが出ます。
抽出したパッケージを C:\Anaconda(インストール先フォルダ) にリンクできませんでした。

これも『無視』を押して進むと、Failed to initialize conda directoriesというエラーで
ディレクトリの初期化に失敗しました。というエラーです。
これも無視してもインストールできるのですが、
インストールフォルダを開いて実行しようとすると、
コンピュータにapi-ms-win-core-path-l1-1-0.dllがないため、
プログラムを開始できませんでした。
というエラーが出ました。

こういうエラーはだいたい、Microsoft Visual C++が入ってないことが原因ですが、
私のPCには既に、
Microsoft Visual C++ Redistributable 2013
Microsoft Visual C++ Redistributable 2015-2022はインストールされています。
しかし、このエラーが出ます。

どうすればいいでしょうか?

621 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 21:50:52.22 ID:3hY3UrlC.net]
>>612
馬鹿は何で勝手にエラーを無視するの?
馬鹿だから?

622 名前:デフォルトの名無しさん mailto:sage [2024/06/03(月) 23:56:17.44 ID:zK4G03Sv.net]
>パッケージの抽出に失敗しました

エラーなのに、何でそこで処理を止めないの?

623 名前:デフォルトの名無しさん [2024/06/04(火) 01:31:12.37 ID:nKdfCONb.net]
>>614
そりゃ止めるべきですが、そこでインストールが終わってしまいます
その後どうするんでしょうか

624 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 01:47:07.24 ID:gWxOd/CS.net]
エラーの原因を調べて対処する

or

「Failed to extract packages」みたいな原因も対処方法も分からない
クソみたいなエラーメッセージしか出せないソフトウェアは今すぐ捨てる

625 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 03:02:29.50 ID:hII/eoCO.net]
>>615
原因はいくつかあるけど、これをクリアしてもお前みたいな奴は結局無理だよ



626 名前:デフォルトの名無しさん [2024/06/04(火) 03:21:34.42 ID:hR2Ko9Dv.net]
あ、人を轢いちゃった
でも時間に間に合わないからこのまま行こうっと
何か車の調子が変だな?がちゃがちゃ
あ、また轢いちゃった
まあいいや、このまま行かないと間に合わない
あっ、信号が赤だけど停まれないからえいっ
あー、ぶつけられた

すみません、時間に間に合わせるにはどうしたら良いですか?


こんな感じか?

627 名前:デフォルトの名無しさん [2024/06/04(火) 08:17:16.38 ID:f1zDzjkS.net]
きよし「二人寝てますよ」
やすし「轢いとるやないか!」

628 名前:デフォルトの名無しさん [2024/06/04(火) 11:44:28.70 ID:nKdfCONb.net]
>>612
こちらどうでしょうか?知っている人教えて下さい

629 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 11:56:23.33 ID:C1T0aGVu.net]
>>620
>>616

630 名前:デフォルトの名無しさん [2024/06/04(火) 12:15:01.67 ID:f1zDzjkS.net]
>>620
類似事象があるようなので、「いいね」の付けられたレスの解法を試行するのはどうだろう。
https://community.anaconda.cloud/t/cant-install-failed-to-extract-packages-error/62687

631 名前:デフォルトの名無しさん mailto:sage [2024/06/04(火) 12:57:59.77 ID:v1hWPJDU.net]
>>612
Win7に対応してるのは2019-10まで
https://docs.anaconda.com/free/anaconda/install/old-os/

pythonだけでいいならpython.org公式の3.8.10まで

632 名前:デフォルトの名無しさん [2024/06/04(火) 16:49:21.73 ID:tR+BuZi1.net]
ここは超初心者用ではあるけど、境界知能者用のスレではないよ

633 名前:デフォルトの名無しさん [2024/06/04(火) 23:07:28.09 ID:k5yNkVnV.net]
プログラマー板がまともだったことはない

634 名前:デフォルトの名無しさん [2024/06/05(水) 23:47:06.04 ID:ESv2AI1d.net]
>>622-623
ありがとうございます
>>624
>>973
役に立たん荒らしのゴミが相手にされなかったから発狂してて草w死んどけよカスw

635 名前:デフォルトの名無しさん mailto:sage [2024/06/05(水) 23:48:44.31 ID:SEG9AGVJ.net]
pkg install python した方がよっぽど簡単なんじゃねw



636 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 10:38:37.99 ID:1RUNBtFi.net]
anaconda、バージョン違いの小さな差異は本体だけでpyでバージョンごとに
個別管理できるようになったし有償化した(割に機能が見合っていない)ので
使い続ける意味あんまなくなったな。
ウチの会社でももう使わないように通達されてる。

637 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 10:49:12.08 ID:qz5pj6nB.net]
またanacondaの話になるならanaconda専用スレ立てれば良い

638 名前:デフォルトの名無しさん mailto:sage [2024/06/06(木) 17:55:27.15 ID:+f7ZeVqk.net]
pipxが安全なのはわかるが使いにくいな
pipxは見ずにpoetryだけ使えばいいのか

639 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 01:52:33.37 ID:TKo/YskT.net]
>>612
こいつの本性が笑える

Pythonのお勉強 Part72
https://mevius.5ch.net/test/read.cgi/tech/1703659345/970-

ID:ESv2AI1d0

640 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 06:04:01.45 ID:+I6YMw89.net]
あれだけ煽っておいてよく同じ質問を同じ板でしたなw

641 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 12:09:55.41 ID:dEUVRqD7.net]
pythonのパッケージマネージャーはいくつ出れば気が済むのか(´・ω・`)

642 名前:デフォルトの名無しさん [2024/06/07(金) 12:34:41.54 ID:q6BY+Kco.net]
幾つのパッケージマネージャが出れば、君は Pythonをまともな言語と呼ぶのか。
友よ、その答は風に吹かれている。

643 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 12:49:10.90 ID:XsPkgKWU.net]
PythonでのYAMLの処理で教えてください

groupA:
 image: sampleA0.jpg
 section:
 - section1:
  aaa: 0
  bbb: 0
 - section2:
  bbb: 2
  aaa: 1
  image: sampleA2.jpg
groupB:
 section:
 - section1:
  aaa: 123
 - section2:
  image: sampleB1.jpg

こんな感じのYAMLファイルがありまして、「image」キーを持つものの
最上位からの要素を得たいと思ってます

出力のイメージとしては、こんな感じです
groupA: image: sampleA0.jpg
groupA: section: - section1: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg

他にも、aaaやbbbのキーでも同様なことをしたいです

なにかよい対応方法はありますか

644 名前:デフォルトの名無しさん [2024/06/07(金) 14:49:41.59 ID:SXd2mcAV.net]
groupA: image: sampleA0.jpg
groupA: section: - section2: image: sampleA2.jpg
groupB: section: - section2: image: sampleB2.jpg
にならない理由は?

645 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 15:25:32.07 ID:U/LNotLd.net]
いっぱいあるXPath相当がつかえるモジュールでもつかえば?
YAML用じゃなくてもDict向けのでもいい



646 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 16:31:15.75 ID:Z4LBLF5E.net]
Python はvenv、Ruby はrbenv、Node.js はnvm など、
各言語で異なるバージョンマネージャーを使う香具師は素人。
すべて使い方が異なるだろ

プロは少なくとも数言語を使うから、
多言語バージョンマネージャーで使い方を統一する

Linux のローカル開発なら、Docker を使うのが簡単だが、
日本人が作った、多言語バージョンマネージャーのanyenv で、rbenv, nodenv も使える。
pyenv も同様。
asdf でも、多言語の好みのバージョンを入れられる

647 名前:デフォルトの名無しさん mailto:sage [2024/06/07(金) 17:35:37.77 ID:wW+zlW8A.net]
>>635
pyyamlとboltonsのresearchを使う
後者は再帰的な処理を自作してもいい(dictとlistで場合分け)

648 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 00:52:57.64 ID:TvmcjMCs.net]
>>633
pythonの破綻が見えてきてると俺は思う
perlもcpanが腐って終わった

649 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 00:54:05.76 ID:TvmcjMCs.net]
dockerは無駄多すぎだろ
さすがに

650 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 12:49:56.73 ID:JJO/Gn8n.net]
dockerがベスト
vscodeのdevcontainerこそ人類がたどり着いた最高地点

651 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:04:39.39 ID:pZ+rs27B.net]
俺もvscode devcontainerの組み合わせが良い気がする(´・ω・`)

652 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:22:11.33 ID:3whGHUAW.net]
みんなそんなdockerつかうのね

653 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 14:41:09.17 ID:E87q1Rk2.net]
デプロイまで考えるとコンテナにしとくのがシンプル

654 名前:デフォルトの名無しさん [2024/06/08(土) 14:46:38.50 ID:dTYjDoY8.net]
逆にDocker使ってない人見ると何で?って思うぐらいだよね

655 名前:デフォルトの名無しさん [2024/06/08(土) 15:29:59.02 ID:Dxs/ulLi.net]
自分でコード書いてる時間が一番幸せなんじゃ



656 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 17:55:04.64 ID:Hlb2wDxo.net]
>>644
といいかまともな開発してたらもう使うわないと環境が破綻する

657 名前:デフォルトの名無しさん [2024/06/08(土) 21:01:34.24 ID:D2c2x+th.net]
そんなもんデプロイ先の環境によるだろ

658 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 23:58:06.46 ID:gE4A0CAK.net]
くだ質ですまんが教えてください

Win11 + Python3.12.8 + vscode 環境で、
3 * 0.3 を計算させると8.99999...になってしまいます
(期待している計算結果は0.9)

是正させるためには
round(3 * 0.3 *10) / 10
をすればいいのはわかってるんですが、出来るだけコードを簡略化させたいのと、そもそも何故こんな結果になってしまうのかを出来れば知りたい、です

659 名前:デフォルトの名無しさん mailto:sage [2024/06/08(土) 23:59:19.96 ID:gE4A0CAK.net]
ごめん計算結果のとこは0.899999...の間違いです

660 名前:デフォルトの名無しさん [2024/06/09(日) 00:42:23.58 ID:DuD3W8cN.net]
ttps://docs.python.org/ja/3/tutorial/floatingpoint.html

661 名前:デフォルトの名無しさん [2024/06/09(日) 01:03:55.23 ID:KXbUABQj.net]
デデキントの切断という話でなくて単純に整数n,mによる
n/mをサポートする型がデフォルトではないから
そういう有理数正確に扱える↓を使え
fractions -> Rational numbers

662 名前:デフォルトの名無しさん [2024/06/09(日) 01:19:56.30 ID:KXbUABQj.net]
不動点少数は高速でメモリ消費が少ないのでpythonのデフォルト型には似合ってるよ
でももし、こうした計算が頻回あるいは重要に行なわれるなら
デフォルトで有理数をサポートした言語 common_lisp,R,wolfram等が良いだろう
また無理数も正確に扱いたいならwolframを薦めとく。これはsin(2pi)=0を返す珍しい言語だ

663 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 06:20:23.00 ID:zJwQQmGc.net]
サンクス
言語仕様なら仕方ないか
仮想通貨の自動売買用にpythonを始めたんだけど、今のところ他の言語に切り替える考えはないっす
あと調べたらdecimalってモジュールもあって、これを使ってもスッキリ書けそうね

664 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 09:38:02.01 ID:XLDZv0sl.net]
浮動小数点数は言語仕様というと違和感があるな
どの言語でもほぼ同じ問題出るだろうし

665 名前:デフォルトの名無しさん [2024/06/09(日) 09:39:22.17 ID:XLDZv0sl.net]
>是正させるためには
>round(3 * 0.3 *10) / 10
>をすればいいのはわかってるんですが

こんなことしたらダメでしょ



666 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 10:37:28.45 ID:0/tKVw6D.net]
Decimalは使いづらいんだよね
Decimal('3') * Decimal('0.3')とかいちいちやってられん

667 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 11:41:31.33 ID:lrgfA1Gl.net]
継承と合成どちらを使うべきかと基準がよくわからんなぁ(´・ω・`)

668 名前:デフォルトの名無しさん mailto:sage [2024/06/09(日) 17:04:58.68 ID:Fa41Tv3c.net]
>>658
>>> 3 * Decimal('0.3')
Decimal('0.9')
演算子オーバーロードしてるから1箇所でいい
>>> Decimal(3) * '0.3'
TypeError: can't multiply sequence by non-int of type 'decimal.Decimal'
でもこう書けないんだよな
>>> Decimal(3) * 3 / 10
Decimal('0.9')

669 名前:デフォルトの名無しさん [2024/06/10(月) 15:55:09.93 ID:YXHAsqQy.net]
>>> Decimal(3) * Decimal(3/10)
Decimal('0.8999999999999999666933092612')
だっさ

670 名前:デフォルトの名無しさん [2024/06/10(月) 16:09:43.37 ID:17x/k5Bx.net]
まじか decimal だらしねーな
お手本
[1]> (* 3 (/ 3 10))
9/10

671 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 17:41:53.13 ID:8JGo2SkV.net]
>>> Decimal(3/10)
Decimal('0.299999999999999988897769753748434595763683319091796875')
>>> Decimal(3/10).quantize(Decimal('0.0'))
Decimal('0.3')
エスパーしない方針だから

672 名前:デフォルトの名無しさん mailto:sage [2024/06/10(月) 21:30:34.55 ID:RgnmhcQ5.net]
>>661
クソだっさwww

673 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 10:00:28.46 ID:ufFRRQKE.net]
↓俺の考えた最強のスマートな書式を語れ

674 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 11:06:34.00 ID:GrH0S5VC.net]
>>> Decimal('3.0')
だっさpgr

675 名前:デフォルトの名無しさん [2024/06/11(火) 11:19:18.72 ID:GtLbEh/G.net]
perlの2番煎じにはなるが import XXX で オーバーライドしてくれればいいね



676 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 20:03:54.96 ID:NWbfM0Iu.net]
C++プログラマーだが、
エディタは何使えばええの?

Visual Studioは一応動くが…

677 名前:デフォルトの名無しさん mailto:sage [2024/06/11(火) 20:27:59.97 ID:OZZ7Wa3f.net]
汎用でつかえるのはPyCharmかVSCodeかな
用途とマッチするならJupyter/Colabもいける

678 名前:668 mailto:sage [2024/06/12(水) 08:58:44.17 ID:j9iMATnj.net]
>>669
一番高機能なのはVS Codeかね?
Colabが本格開発に無理なので、探してたところ。

679 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 07:44:44.26 ID:W4hE6ovf.net]
環境を整え無くてもいいPyCharmが楽だな

680 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 13:05:54.68 ID:vNUeXKFR.net]
会社の糞PCだとPyCharmが重いんだわ

681 名前:デフォルトの名無しさん mailto:sage [2024/06/13(木) 13:21:14.57 ID:Uc7cK+cC.net]
パイチャ!

682 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:06:22.09 ID:2+GH8Qi6.net]
モジュールAのMainクラスがモジュールBに書いたSubクラスのインスタンスを生成する
型ヒントのためにAはBの、BはAの参照するから相互参照になっちゃうんだけど
typing typechecking使えば回避できるとして

これって根本的にどう作って相互参照回避すべきなんだ?

683 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:17:35.59 ID:a7DQgjMw.net]
シチュエーションが謎で理解できてないけど
インターフェースとして上位クラスをつくる

684 名前:デフォルトの名無しさん [2024/06/17(月) 12:44:35.82 ID:laKFnUpc.net]
循環しちゃうのは速度落ちてメモリ消費してしまうけど記憶しといたのと照し合わせる手法がある

685 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 12:50:19.30 ID:Me30jdtI.net]
>>674
その状況だとBはAをインポートする必要いやろ

よくあるのはtyping用のスタブモジュールを作る方法



686 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 14:24:03.32 ID:KAevd3qc.net]
>>677
A.py App()
B.py Win()

winがコンストラクタでsuper().__init__(app.root)するとき
App渡せないとroot見えないって言われてしまう

687 名前:デフォルトの名無しさん mailto:sage [2024/06/17(月) 15:22:40.07 ID:Me30jdtI.net]
>>678
その例だとWinが依存すべきなのはAppそのものじゃなく
Appが継承してる型だったり実装してるインターフェースの型
tkを例にすればWinが依存するのはAppそのものじゃなくtk.Tkやtk.Widget

AとBの相互依存から共通で依存する抽象度の高いCを切り出すことで
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形になる

688 名前:デフォルトの名無しさん mailto:sage [2024/06/18(火) 23:47:26.99 ID:l8Y5coIJ.net]
>>679
仕様上サブがメインのいくつかに依存するから丸ごと渡してたけど
rootと、必要な位存箇所だけ渡すようにすればいいのね

689 名前:デフォルトの名無しさん [2024/06/19(水) 07:39:14.75 ID:Ml7xOhwE.net]
__init__.py 描けば良いのに

690 名前:デフォルトの名無しさん [2024/06/19(水) 08:41:26.42 ID:oNcSZ2Oe.net]
C言語系は数年やっていてpythonのお勉強してるので質問させてくれ

@propertyを使用してgetter/setterを作れるのが分かりました
このプロパティをprotectedにするにはどうしたらいいですか?

691 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 09:10:58.03 ID:Of90IDaN.net]
>>682
この辺の話かな?
ttps://note.com/yucco72/n/nfc5ba5321567

692 名前:デフォルトの名無しさん [2024/06/19(水) 10:07:39.70 ID:Ml7xOhwE.net]
>>683
そいつ馬鹿やな
痒い所に手が届いてる好例なのに

693 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 10:48:00.65 ID:EzJYrWWw.net]
>>680
サブがメインに依存するという仕様がよろしくないんだよ
依存性の方向を一方通行にするというのがモジュール設計の大原則

694 名前:デフォルトの名無しさん [2024/06/19(水) 11:37:31.50 ID:ANMSl1mg.net]
>>685
そうはいってもどんな場合でも回避できるわけじゃないでしょ
うまく切り出せば回避できるかもしれないけど、見通しが悪く不自然になる場合があると思う
今自分が困ってるのは先生と生徒の関係で、先生は生徒を何人か選ぶのだけど、先生の事情もあるし、生徒のスケジュールもあるしで、
先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってるんだけど
かなり先生と生徒が密結合なのが避けられなくてインタフェースに切り出すと見通しが悪くなりそうなんだよね
こういう場合はどうすればいいのかな

695 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 19:41:52.46 ID:E1qEKZbV.net]
>>685
元の質問者だけど
今回はメインGUIとサブGUIでそれぞれ独立させて、メインGUIからサブGUIを見るだけ に作り直しました

ところで__init__.pyを書くとはなんですか?



696 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:24:53.92 ID:jr8KvPbD.net]
ctypesで構造体宣言するときに、以下のようにc側が不完全型の配列定義であった場合は、どのように宣言すればよいでしょうか。

typedef struct aa
{
uint32 eListType;
uint16 wRes;
uint16 wOdList[];
}


class aa(Structure)

697 名前::
_fields_ = [("eListType",c_uint32),
("wRes",c_uint16),
("wOdList",???)
]
[]
[ここ壊れてます]

698 名前:デフォルトの名無しさん mailto:sage [2024/06/19(水) 22:42:47.22 ID:0e7E5JVP.net]
>>686
>先生が生徒を選んだ後に、選ばれた生徒に先生のスケジュールはこなせるか?を確認してもらってる
これもapp.rootのやつと同じで生徒が先生に直接依存する必要なくない?
先生、生徒、コース/クラス、受講、のよくあるモデル
参照じゃなくidで受け渡すことも考えるといいよ

699 名前:デフォルトの名無しさん [2024/06/20(木) 08:09:05.13 ID:hChVJ2JT.net]
>>687
それってpipでインストールできる?

700 名前:デフォルトの名無しさん [2024/06/20(木) 17:09:09.89 ID:F8Q2DGBi.net]
>>688
C の方が malloc(sizeof(struct aa) + N) みたいにやってるだろうから
とりあえず N の最大値くらい確保

701 名前:デフォルトの名無しさん [2024/06/20(木) 17:55:30.81 ID:ZSpymqjs.net]
>>689
直接依存する必要がないので、idを持っておけばよいということ?
確かにidから引けるdictを持っておけばよいのはそうだけど、実質的にはそれは依存関係にあって、プログラミング言語での表現の制約を回避する策にすぎないような気がするのだけど勘違い?

702 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 18:12:29.06 ID:pudWG0gF.net]
>>688
("wOdList", POINTER(c_uint16))

a = aa()
a.wOdList = (c_uint16 * size)()

wResがwOdListのsizeだったりするのかな?

703 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 23:47:51.33 ID:F6VlqWlP.net]
>>692
参照とidはカップリングの度合いの違い
直接依存する必要がないからという理由で書いたわけではないよ

片方がidだけに依存する形にすれば相互依存を解消できる
AとBの相互依存からAのidをC切り出して
AはBとCに依存、BはCに依存、CはAにもBにも依存しない形にできる

ただこういうのはプログラミング上の小手先のテクニックなのは確か
>>686の話はもっとドメインレベルでの本質的な依存関係を先に突き詰めたほうがいいと思う

704 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 10:29:55.02 ID:M8EEKVG+.net]
>>693
from ctypes import *
class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]

a = aa()
a.a # 0
a.b # <__main__.LP_c_ushort object at 0x000002033996A340>
a.__sizeof__() # 104
sizeof(a) # 16
a.b = (c_uint16 * 4)(9,8,7,6)
a.b # <__main__.LP_c_ushort object at 0x000002033996AAC0>
a.__sizeof__() # 104
sizeof(a) # 16

だめやん

705 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 13:07:20.00 ID:tjV7APzm.net]
>>695
そういうもんやで
sizeofの結果も自動的に変わると思ってた?



706 名前:デフォルトの名無しさん [2024/06/21(金) 15:09:56.96 ID:M8EEKVG+.net]
そういう問題じゃなくて
常にPOINTER型の容量分しか無いのは可笑しい

707 名前:デフォルトの名無しさん mailto:sage [2024/06/21(金) 15:17:35.67 ID:M8EEKVG+.net]
少なくとも >>688 の質問に対して正しい答えは

from ctypes import *

class aa(Structure):
_fields_ = [('a', c_uint32), ('b', POINTER(c_uint16))]

a = aa()
a.b = (c_uint16 * 4)() # これは間違い
sizeof(a) # 16

class bb(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 4))]

b = bb()
sizeof(b) # 12

class cc(Structure):
_fields_ = [('a', c_uint32), ('b', (c_uint16 * 8))]

c = cc()
sizeof(c) # 20






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

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

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