24/06/27 00:43:31.20 DskBlp2q.net
別スレッド化したりしてもtkinterに干渉するとランダムな幅の遅れが出る
たとえばプログレスバーをn秒ちょうどで満たすようなコードは書けない(試行毎にバラバラの誤差が生じる)
多分GILとかブロックの問題で、解決できない。これはpythonとtkinterの仕様
798:デフォルトの名無しさん
24/06/27 10:04:13.91 OTNDZ+yC.net
どんな酷いコード描いてるのか観たいから笑わないからぜひ晒してくれ
799:デフォルトの名無しさん
24/06/27 11:44:11.82 THiq2UM5.net
>>786
どの言語でも試行毎に誤差はでる
その誤差を許容範囲内にするだけ
GILの問題でも解決方法はあるよ
800:デフォルトの名無しさん
24/06/27 15:00:13.36 oRm7STy0.net
最新のpythonだとGILオフにできるらしい
そのバージョンでやってみたら?
801:デフォルトの名無しさん
24/06/27 15:06:22.67 WK2H4wzF.net
>>783
async使え
懐かしい問題だなw
VB時代とかはbackgroundwokerとか使ってUIスレッドを止めないようにしてたけど今の時代ならasync/awaitでお前さんのループでの処理書けばおk
802:デフォルトの名無しさん
24/06/27 15:21:15.01 CgIutZfe.net
こんな人がasyncにするとこんがらかりそう
803:デフォルトの名無しさん
24/06/27 15:40:57.25 oRm7STy0.net
pythonのGUIはマルチスレッドで処理を逃してもGILでロックしまくりで遅くなる
かといって重い処理を動かすとブロックする
async使ってもブロックしたら終わりなのは同じ
詰み
804:デフォルトの名無しさん
24/06/27 17:23:36.34 NmEKUmlO.net
CPUバウンドな処理はPythonならマルチプロセスにするのが常識
サブインタープリターも使えるようになったけど本格的に使えるのは3.13から
async使うのはI/Oバウンドな処理
これも常識
805:デフォルトの名無しさん
24/06/27 17:34:34.83 Qbo7b3Vg.net
であればGUI制御が別プロセスになってるソリューションがあんのかな
それかライブラリを叩く粒度を大きくする工夫があるのか
806:デフォルトの名無しさん
24/06/27 18:53:48.27 WKYIGf9o.net
言語やOSに関係なく基本的にどのGUIフレームワークでも
アプリケーションのメインスレッドで
UIイベントのハンドリングやUI操作を行うことが前提になってる
だから別プロセスにするのはGUI制御ではなくてUIに関係ないCPUバウンドの処理
つまり基本的にはGUIフレームワークの守備範囲外
807:デフォルトの名無しさん
24/06/27 19:04:32.49 F52juMPQ.net
>>791
超初心者用スレで無双か。
808:デフォルトの名無しさん
24/06/27 19:09:48.41 oRm7STy0.net
>>795
C#はその辺シームレスなんだよね
809:デフォルトの名無しさん
24/06/27 22:23:02.86 /FJYXYiJ.net
だれも.afterは回答しないのか
810:デフォルトの名無しさん
24/06/27 22:39:51.02 QXPbo1LF.net
そんなafter使うような真面目な人間は5chに来ない
811:デフォルトの名無しさん
24/06/27 23:54:31.61 o3056e9S.net
>>797
言語と並行プログラミング用ライブラリとGUIフレームワークの役割分担はC#も基本的に同じ
でも同期コンテキストの存在とかTPLの使いやすさとかC#/TPL前提のドキュメントの豊富さとか
シームレスに感じる理由が多々あるのはわかる
>>798
afterは使ってるって最初に書いてたよ
812:デフォルトの名無しさん
24/06/28 08:28:53.40 J/XDPL0h.net
async は失敗だったよな
Pythonでスレッド数の消費が問題になるようなものを運用してる奴なんて極僅かなんだからライブラリがわざわざ対応する訳がない
Javaみたいに世間の流行なんかガン無視してマイクロスレッドに賭けるべきだった
813:デフォルトの名無しさん
24/06/28 09:12:53.81 5vFH0KpM.net
Web系の要望だろうけど
Twistedさん殺しにいかなくてもとは思った
814:デフォルトの名無しさん
24/06/28 11:24:07.08 joeyrg+E.net
Twisted懐かしいな
お世話になりました
815:デフォルトの名無しさん
24/06/28 14:11:06.71 sa0QpqCC.net
>>801
GIL外したからマイクロスレッドもありなんだよな
asyncioを駆使して書き直すのも面倒だし
816:デフォルトの名無しさん
24/06/28 17:38:58.38 IKZAS17P.net
グリーンスレッドのことをマイクロスレッドと呼んでる?
であればasyncのTaskがそれだよ
817:デフォルトの名無しさん
24/06/28 17:39:52.27 bVzHKq+e.net
インターネットからのパッケージの入手ができないクローズドな環境で
Pythonを使ってます
Portable運用ができるのでWinPythonを使っているのですが、
同梱されているものがバージョンにより異なり、
PandasやKerasが入っていたりいなかったりするのがちょっと困ってます
自分が必要なものを導入した状態でポータブル化したPython環境、
みたいなものを作る方法はありますでしょうか
818:デフォルトの名無しさん
24/06/28 17:44:05.75 sa0QpqCC.net
>>805
ちゃうよ
ゴルーチンみたいな奴
ちゃんとスレッドは使う
819:デフォルトの名無しさん
24/06/28 18:21:18.71 IKZAS17P.net
>>807
それはグリーンスレッドのスケジューラー/エグゼキューターが
内部でOSスレッドのスレッドプールを使ってるという話でしょ
asyncのTaskをOSのスレッドのスレッドプールで回すのと仕組み的は同じでは?
スケジューリング方法の違いやスタックの有無だったり
スケジューラー/エグゼキューターが言語にビルトインされてて
アプリケーションコードで意識しなくてもいいとか
ゴルーチンとの違いはいろいろあるけど
それはマイクロスレッドの定義とは関係ないんじゃない?
820:デフォルトの名無しさん
24/06/28 18:33:47.84 sa0QpqCC.net
>>808
asyncのTaskは数千、数万も作れないでしょ
ゴルーチンすなわちマイクロスレッドはそれぐらい作れる設計
821:デフォルトの名無しさん
24/06/28 18:50:13.66 IKZAS17P.net
>>809
>asyncのTaskは数千、数万も作れないでしょ
インタープリターだから生成が遅いというだけで
その数は余裕でしょ
822:デフォルトの名無しさん
24/06/28 20:02:09.92 TzaR5aOj.net
>806
ありますよ
823:デフォルトの名無しさん
24/06/28 21:12:32.85 sa0QpqCC.net
>>810
asyncはあくまでIOが並列化できるだけ
計算の実態を数万作れるのはゴルーチンだけ
よって本質が全く違う
824:デフォルトの名無しさん
24/06/28 21:42:27.28 69xrfFOO.net
>>812が間違っていて理解も不足している
各言語のasyncタスクは数万タスク動かせる
Pythonでは試していないがおそらく動くのだろう
825:デフォルトの名無しさん
24/06/28 22:10:06.47 sa0QpqCC.net
>>813
だから動かないって
ゴルーチンは「計算の主体」(って意味わかる?)
を数百万個作れる
これはユーザースペースでコンテキストスイッチをしてるため
おまけにスタックサイズも動的な上に小さい
全てマシンコードレベルで行われる
当然ロックなど存在しない
これがマイクロスレッド
826:デフォルトの名無しさん
24/06/28 22:15:33.56 69xrfFOO.net
>>814
君は非同期タスクについて何も知らない無知者だとわかった
まずは勉強して知識をつけなさい
もう君の相手をすることはない
827:デフォルトの名無しさん
24/06/28 22:21:09.52 sa0QpqCC.net
>>815
御託はいいから動かしてみてね
思い処理を数万個でいいから
Goだと並列でちゃんと動くよ
828:デフォルトの名無しさん
24/06/28 22:35:05.70 b9qgRVqH.net
asyncのtaskはどの言語でもJavaScriptからRustに至るまで数万個並行で動作するよ
そのために各言語に導入されたんだよ
829:デフォルトの名無しさん
24/06/29 03:17:28.84 4AUQ0CVf.net
Elixir は、10万もの小プロセスを起動できる。
メモリが大きいと、5千万小プロセスも。
ただし、小プロセスは、OS のプロセスとは異なるものです
スクエニは、Elixirを使っているらしい
Go の並行処理も、mattn の本に書いてあるけど、
C で、OS の100スレッドを起動したら、
CPU 使用率が高く、12秒も掛かったが、
Goで100 goroutine を起動したら、
6スレッドしか起動せず、9秒で済んだ
Goの方が、CPUコアを効率的に使える
とにかく、スレッドを起動したらダメ!
CPUコアや時間の大半が、スレッドの起動処理に使われるから
830:デフォルトの名無しさん
24/06/29 08:36:40.26 9/qe2SG9.net
知ったかぶりして間違ったこと書く
やんわり間違いを指摘される
反省せずに開き直る!
またこの流れ
ググればすぐわかるような間違いなのになんなんだろうな
831:デフォルトの名無しさん
24/06/29 09:05:37.50 C+0SrrrI.net
ElixrはCPU使う処理は得意ではないよ
処理は一瞬で終わるが大量の処理を必要とするようなものが得意
それこそpush通知とかね
Goのようにマシンコードレベルでコンテキストスイッチを実装してるわけではないから
重い処理を書くと途端に負荷が上がる
832:デフォルトの名無しさん
24/06/30 11:06:44.92 L3wyoKVN.net
Erlang最強
833:デフォルトの名無しさん
24/07/01 05:47:45.32 ppYg1fh2.net
AIならね
834:デフォルトの名無しさん
24/07/07 10:33:44.66 1r2hUTKR.net
pythonで、windows10か11の多画面環境で特定のウインドウのSS撮りたいんだけど
ウインドウハンドル取得してwinAPI叩いてやってるんだけど
メイン画面以外で縦方向に数百pixの座標ズレが出てしまう
こういう書き方しろ、みたいなのご存知の方どなたか…
835:デフォルトの名無しさん
24/07/07 22:05:47.86 5EkJktI1.net
>>823
それのどこがPythonに関係あると思うの?
何らかPythonならではのところに原因がありそうなのであればその辺の詳しい情報を出してくれないことには分かるわけないし、
そうでないならCのサンプルコードを探した方がいいのでは
836:デフォルトの名無しさん
24/07/07 23:45:08.47 y7P/TwV5.net
pythonで取得したいのだからpythonの話でしょうよ
どうせSS部分pythonのライブラリ使うんだから
(ビットマップオブジェクトとかまでapi叩くんならアレだけど)
837:デフォルトの名無しさん
24/07/07 23:57:01.73 5gDGdFIi.net
自分で書いたコード提示して聞いた方が回答つくと思うが
838:デフォルトの名無しさん
24/07/08 00:05:50.31 +/07puKi.net
Windowsのマルチモニタ環境では、各モニタの座標系が異なるため、座標のズレが発生することがあります。この問題を解決するためには、モニタの相対的な位置と解像度を考慮して座標を変換する必要があります
839:デフォルトの名無しさん
24/07/08 00:06:20.59 +/07puKi.net
1. 各モニタの情報を取得する
2. 指定したウィンドウがどのモニタにあるかを特定する
3. ウィンドウの座標をそのモニタの座標系に変換する
840:デフォルトの名無しさん
24/07/08 08:43:58.61 XK4Xq7P1.net
ういんどうずはクソなので超めんどくせえんだわ
おれはウインドウ内のみ欲しくて、その描画myW, myHが分かってる場合しか書いたことないけど
rectたちから計算できるべ多分
DWMWA_EXTENDED_FRAME_BOUNDS = 9
r_rect = ctypes.wintypes.RECT()
ctypes.windll.dwmapi.DwmGetWindowAttribute(hwnd, DWMWA~, ctypes.byref(rect), ctypes.sizeof(rect))
_style = win32gui.GetWindowLong(hwnd, win32con.GWL_STYLE)
if _style & win32con.WS_THICKFRAME:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYFRAME)
else:
_win_border_size = win32api.GetSystemMetrics(win32con.SM_CYBORDER)
win_border_size *= 2
c_rect = win32gui.GetClientRect(hwnd)
w_rect = win32gui.GetWindowRect(hwnd)
841:デフォルトの名無しさん
24/07/08 08:45:47.33 XK4Xq7P1.net
r_height = r_rect.bottom - r_rect.top
c_width = c_rect[2] - c_rect[0]
c_height = c_rect[3] - c_rect[1]
w_width = w_rect[2] - w_rect[0]
src_pos_x = (w_width - c_width) // 2
titlebar_height = r_height - c_height - win_border_size
hwndDC = win32gui.GetWindowDC(hwnd)
mfcDC = win32ui.CreateDCFromHandle(hwndDC)
saveDC = mfcDC.CreateCompatibleDC()
saveBitMap = win32ui.CreateBitmap()
saveBitMap.CreateCompatibleBitmap(mfcDC, myW, myH)
saveDC.SelectObject(saveBitMap)
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_x, titlebar_height), win32con.SRCCOPY)
bmpinfo = saveBitMap.GetInfo()
bmpstr = saveBitMap.GetBitmapBits(True)
im = Image.frombuffer('RGB', (bmpinfo['bmWidth'], bmpinfo['bmHeight']), bmpstr, 'raw', 'BGRX', 0, 1)
win32gui.DeleteObject(saveBitMap.GetHandle())
saveDC.DeleteDC()
mfcDC.DeleteDC()
win32gui.ReleaseDC(hwnd, hwndDC)
高DPI対応でこれ入れてるとずれるからそれは知らん
ctypes.windll.shcore.SetProcessDpiAwareness(1)
842:デフォルトの名無しさん
24/07/08 08:48:31.66 XK4Xq7P1.net
訂正
saveDC.BitBlt((0, 0), (myW, myH), mfcDC, (src_pos_x, titlebar_height), win32con.SRCCOPY)
843:デフォルトの名無しさん
24/07/08 21:09:08.76 s8AzJdEo.net
>>829-831
マジで助かりました…上手くいきましたが
コードが全然読めないので精進します
844:デフォルトの名無しさん
24/07/09 01:02:05.27 qs1jvts2.net
posXの計算式どういう理屈でそれなんだろう…
総当たりで試したのかな
845:デフォルトの名無しさん
24/07/09 17:53:08.61 ycuYR4Xv.net
質問失礼します
VersionError: The client version 0.52.3492 is too old. Please update to the latest package on PyPi:
と出てきました、調べたところThis library requires Python 3.8-3.12.と出てきたのですが
自分の使用バージョンはPython 3.10
pipも最新の24に更新済み、他にどこを直せばいいのでしょう
846:デフォルトの名無しさん
24/07/09 18:57:30.17 JSIA10ur.net
すみませんVSCodeのシンタックスハイライトについて質問です
シンタックスハイライトをPython仕様にしたいと思うのですがこんな感じで変えられますか?
とりあえず今のままではメソッドなのかクラスなのか変数なのか全くわからないのでどうもできません
URLリンク(i.imgur.com)
847:デフォルトの名無しさん
24/07/09 19:06:47.56 w695tFt+.net
>>834
PyPiが古いんだろ
848:デフォルトの名無しさん
24/07/09 19:15:18.18 UDSzeDWm.net
とりあえずPython勉強してPython3エンジニア基礎試験に合格して、次の実践の勉強してるがつまらん
何か作った方が面白いが作りたいものもない
849:デフォルトの名無しさん
24/07/09 19:16:34.21 ycuYR4Xv.net
>>836
pypiとpipって同じじゃないんですか
調べいても違いを説明する結果が出てきません
850:デフォルトの名無しさん
24/07/09 19:42:17.96 w695tFt+.net
>>838
モジュールも全部最新なの?
それでも出るなら特定の組み合わせで動かないとかじゃないのか
851:デフォルトの名無しさん
24/07/09 20:05:31.88 qs1jvts2.net
>>835
app = App()
app.func()
変数 = クラス
関数
色がないと判断ができない、というのは論外
小文字、大文字、ドットアクセスで見ろ
強いて言えば
foo.bar と書かれているときbarがメソッドかプロパティかわかりません という話ならまぁ…
まあでもシンタックスハイライトってjsonで設定してあって弄れるから好きにやりな
852:デフォルトの名無しさん
24/07/09 20:15:12.34 ycuYR4Xv.net
>>839
モジュール?
まだ全然わからないけどモジュールですね!ちょっと調べてみます
853:デフォルトの名無しさん
24/07/09 20:18:31.83 qs1jvts2.net
AIとかをやろうとして、言われるがままに色んなものをガンガン入れてしまってる気がする
854:デフォルトの名無しさん
24/07/09 20:27:31.33 KaCb5RY5.net
>>837
自力で作れると思われる範囲に制限しなけりゃ作りたいものはあるだろ?
今時プログラミングなんて自分で手を動かす必要ない
AIに夢を語ってりゃそれっぽいものは簡単にできる
855:デフォルトの名無しさん
24/07/09 23:33:54.51 AsZE7u+u.net
>>835
Class が緑になってしまうけどこんな感じでいい?
これでいいなら拡張機能の「Python」を入れればできるけども
URLリンク(i.imgur.com)
あと VSCode の配色テーマを Dark(Visual Studio) にしていると
拡張機能のシンタックスハイライトが効かなくなるらしい
URLリンク(qiita.com)
856:デフォルトの名無しさん
24/07/10 00:07:36.42 3j7FzYnK.net
色々調べた結果python側の問題とわかったので確認
python --version→python3.10
python3 --version→pythonとしかで来なく
python3.10がちゃんとインストールされてるのかpython3.10 --versionを実行した結果、python3.10℃は、内部コマンドまたは 部コマンド、操作可能なプログラムまたはバッチファイルとして認識されていませ ん。と出てきました
とりあえずアンインストール後再インストールしてみますが
1月くらいまで何事もなく使えてたのにインストールされてませんみたいになることってよくあるのですか?
857:デフォルトの名無しさん
24/07/10 00:54:56.26 B0lLeabB.net
最新のpythonインストールしたんだろ
それで昔の環境が壊れたとかでおかしくなる
858:デフォルトの名無しさん
24/07/10 01:07:23.88 EF6Y7HgP.net
>>845
python3 --versionでPythonと表示されるのはwinの設定→アプリ→アプリ実行エイリアスがオンになってるから。これはMSストア版python用
公式版python3.10をインストールしてもpython3.10という実行ファイルが存在しないのは正常
859:デフォルトの名無しさん
24/07/10 01:59:30.87 5rHX5/PL.net
試行錯誤する前に拡張の説明や設定項目を確認しないのなんで
860:デフォルトの名無しさん
24/07/10 02:34:41.59 3j7FzYnK.net
みなさんありがとうございます
>>846
ID変わってたのでわかりにくかったのすみません>>834です最新では無いと思います
>>847
ということはpython側の問題ではないのですね再インストールしても無駄……?
>>848
今回はModalのセットアップから初めてるのですがそこで躓いてしまって
恐らくpythonに問題があるのかなと
861:デフォルトの名無しさん
24/07/10 03:33:20.73 JKR4u2JY.net
modal要求バージョンより新しいpython入ってるせいで詰まってんじゃないの
862:デフォルトの名無しさん
24/07/10 08:41:03.90 0/GvnarD.net
>>850
Modalの要求バージョンは3.8~3.12
私が使っているのは3.10なので大丈夫だとは思うんですがもう一度使おうとしたプログラムのエラーメッセージを確認してきます
863:デフォルトの名無しさん
24/07/10 15:30:21.08 For1CkV4.net
だいぶ初心者だと思います
ttk.Treeviewのselection_setに関する質問なんですが
まず、やろうとしている事はビューアで
Treeview1 サイトから取得してきたWebページ一覧 選ぶと情報ダウンロード
Treeview2 ページの情報をダウンロードしたサイト一覧(実態としてはダウンロードフォルダにあるフォルダ一覧)
Treeview3 Treeview2で選んだフォルダ内に保存されている個別のページ情報一覧(実態としてはフォルダ内テキスト一覧)
で「Treeview2でフォルダを選び、Treeview3でファイルを選ぶと、ttk.Textに情報表示」はうまくいってます
この時
Treeview1に<<TreeviewSelect>>をbindし、ダウンロードした後Treeview2の内容を消去&フォルダ一覧再取得&表示する関数などを仕込んでいます(後述)
Treeview2も<<TreeviewSelect>>をbindし、Treeview3の内容を消去&選んだフォルダ(Treeview2)の中身を取得&(Treeview3に)表示する関数を仕込んでいます
(Treeview3も<<TreeviewSelect>>をbindし、ttk.Textの内容を更新する関数を仕込んでいますが、多分今回の質問には関係ないです)
問題はTreeview1から選んだ時で、選んだ時にダウンロードするだけでなく、落としたものを自動的にttk.Textに表示しようとしています
これもttk.Textの表示だけなら問題ないのですが、Treeview2とTreeview3も今ダウンロードした項目が自動的に選ばれた状態にしたいのですが、Treeview3だけうまくいきません
エラーメッセージすら出る事なく、何も選択されません(Treeview2は正常に選択されています)
長いのでレス分けます
864:デフォルトの名無しさん
24/07/10 15:30:59.95 For1CkV4.net
>>852続き
原因はおそらくですが、Treeview1にbindした関数内でTreeview2の項目を選択した時、自動的にTreeview2にbindされた関数も呼び出されますが
これの処理がTreeview1にbindした関数の後で実行されるせいで、最後にTreeview3がリフレッシュされているのだと思います
Treeview1の処理中に他のTreeviewを選んだ時「Treeview1の処理中断→Treeview2の処理→Treeview1の処理再開」になると思い込んでコードを書いていたのですが
たぶん実際には「Treeview1の処理完走後、トリガーされたTreeview2の処理」になっているのかなと思っています(テスト用のprintの表示順序などから推測)
最後にTreeview3もちゃんと選択されるようにするには、どうすればいいでしょうか?
Treeview1の処理中、Treeview2を一時的にunbindも試してみましたが、確かにunbindして必要な処理を補完すればちゃんと動くので原因は間違ってなさそうですが
再bindをTreeview1の処理中にしてしまうと、処理後に結局トリガーしてしまって無意味でした
865:デフォルトの名無しさん
24/07/10 17:05:01.94 iit7nof0.net
ボタンは1回押したらロックするか
ブロック機構入れないと
連打したり、別のボタン押したりしたときに収拾つかなくなるで
たとえば
bind関数内の最初に、if treeviewselected:returnみたいなの書いて排他動作にするとかさ
866:デフォルトの名無しさん
24/07/10 18:37:27.41 For1CkV4.net
>>854
丁度それをやってみて正常に動いたところでした、ありがとうございます
やはりその辺の処理になるんですかね
ロック機構、確かに要りますね
趣味で場当たり的に作ってると、そういう構造的なノウハウとかは中々身につかなさそうですね……
867:デフォルトの名無しさん
24/07/10 21:14:08.65 8aePid6X.net
GUIはGUI用のノウハウあるで、書きまくってたら身についていくよ
ロジックと表示系分離するとかもそうだしさ
868:デフォルトの名無しさん
24/07/11 00:14:02.11 gnKs0VpL.net
pythonでpyenv pipx poetry使えるレンタルlinuxサーバ知らん??
869:デフォルトの名無しさん
24/07/12 03:05:52.22 Fv9K4MWW.net
whisperを使ってみようと思ったんですが、次のコードでどうあがいても
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。
import whisper
with open("./test.txt", 'r', encoding='utf-8') as file:
content = file.read()
print(content)
uri = "./test.mp3"
model = whisper.load_model("small")
result = model.transcribe(uri, verbose=True, fp16=False, language="ja")
test.txtはちゃんと読み込まれて表示されるのに
resultのところでどうしてもファイルが見つからないと言われます
audio = whisper.load_audio(file=uri)
をresultの前に噛ませたりしても、ここで見つからないと言われます
絶対パスにしてもwavとかoggとか試しても無駄だし、拡張子消してももちろん無駄です
ファイルの位置を変えたり、全然違う場所の全然違う音声ファイルを読み込もうとしても無駄です
pipしなおしてもPC再起動しても無駄です
一体何が悪いのでしょうか
870:デフォルトの名無しさん
24/07/12 03:18:10.13 6z6Lg9Zs.net
そもそもresult前に読んだパス認識してんの?
path.existsみたいなのしなはれ
871:デフォルトの名無しさん
24/07/12 03:55:38.40 Fv9K4MWW.net
>>859
とりあえずこれを直前に挟んでみましたがTrueでした
print(os.path.exists(uri))
ダミーにめちゃくちゃ入れたらもちろんFalseなので、result以外はちゃんと動いてるようなんですが
872:デフォルトの名無しさん
24/07/12 04:14:19.09 6z6Lg9Zs.net
ffmpeg関係は?
873:デフォルトの名無しさん
24/07/12 05:06:05.29 Fv9K4MWW.net
>>861
すみません、それでした
解決しました、ありがとう
雑に使おうとして、基本的なところが抜けてました
874:デフォルトの名無しさん
24/07/18 21:35:07.90 atiQW+Xs.net
いまtkinterでGUIをMVCで作ろうとしてるんだけど
これウィジェット自身で完結する変数やメソッドはウィジェット側に書くわけじゃん
するとあるウィジェットに関係する変数やメソッドが、viewとcontrollerに点在することになるけどそれでいいのか?
全部無理矢理controllerに押し込んだら、こんどcontrollerが肥大化するけど、それはそれでどうなんだという気もする
875:デフォルトの名無しさん
24/07/18 23:22:50.39 61oenaL1.net
>>863
MVCは死ぬほどバリエーションがあるのでこれといって何が正解かとはかない
しかし成功しているモデルの一つであるiOSでのMVCを説明してみる
まずコントローラはモデルとビューを保持する
コントローラがユーザーからのイベントを受け取り対応するモデルのメソッドを呼ぶ
モデルのメソッドが呼ばれ状態を変更する
完了後にコントローラへ通知する
そしてコントローラは対応するビューを再描画する
正直古臭いがある程度成功しているアーキテクチャだ
876:デフォルトの名無しさん
24/07/19 05:30:02.76 QNeV9bba.net
vscodeでtomllib使って値読み込んでもpylanceが上手く型を認識してくれない(anyになる)んだけど
tomlって型付きじゃなかったっけ? おま環かこれ??
877:デフォルトの名無しさん
24/07/19 05:40:24.28 +oFdaKCd.net
石丸伸二さん取材の最前線
「取材不足」さんのYouTubeチャンネル
URLリンク(youtube.com)
「取材不足」さんのX(ツイッター)
URLリンク(x.com)
石丸伸二さんは天才ですね!
878:デフォルトの名無しさん
24/07/19 06:02:53.03 2drNjBF3.net
>>865
どんなデータ読むかわからんなら静的解析できない
データの型が想定できるなら自前のエンティティクラスにいったん格納してみては?
健全にやるならバリデーションする
879:デフォルトの名無しさん
24/07/20 06:12:19.62 rQPoAcvH.net
Pythonで組んだ自動処理はレンタルサーバー使ってる?
880:デフォルトの名無しさん
24/07/20 17:56:48.97 pd3T6vIK.net
>>868
日本語検定何級?
レンタルサーバーを使っているかどうかが先に評価する条件だろ?
881:デフォルトの名無しさん
24/07/20 17:58:02.44 pd3T6vIK.net
>>865
バイナリーデータを扱うのに型が自動で決まる方が気持ち悪いだろ
882:デフォルトの名無しさん
24/07/20 18:30:49.82 rQPoAcvH.net
>>869
スレタイの通りなんだけど、なんで煽ってるの?
883:デフォルトの名無しさん
24/07/20 18:44:11.27 pd3T6vIK.net
レンタルサーバーを使っているかどうかはここで聞かなくてもいいだろうに
初心者だとレンタルサーバーの存在を知らない可能性が高いと思うけどな。
レンタルサーバーならわざわざPythonを使う必要もない。
884:デフォルトの名無しさん
24/07/20 18:56:40.19 g11axyeV.net
>>870
でもパーサーは内部的にpython用の型に変換してるんだから、それを静的型チェッカに伝えるだけじゃねーのかなと思わなくはない
885:デフォルトの名無しさん
24/07/20 19:10:13.69 4S4L7THY.net
パーサーあるいはバリデータを通して特定の型に適合することがわかったらその型にキャストしてやればいい。
886:デフォルトの名無しさん
24/07/20 19:39:36.45 pd3T6vIK.net
それだとデータがおかしくない前提の設計になる
887:デフォルトの名無しさん
24/07/20 19:43:13.82 JfCCJ2ok.net
setdefaultencoding()
888:デフォルトの名無しさん
24/07/20 19:43:43.52 pd3T6vIK.net
彼は単にTOML形式のファイルが間違っているだけの話をしているのかもしれない。
889:デフォルトの名無しさん
24/07/20 19:44:44.42 g11axyeV.net
>>875
データおかしかったらパースエラーでしょ
型チェッカが作動する以前で終わる話やん
890:デフォルトの名無しさん
24/07/20 19:45:09.15 pd3T6vIK.net
決められたフォーマットでない設定ファイルを読み込んだときの動作は処理を止めるのが正しい実装。
891:デフォルトの名無しさん
24/07/20 19:46:17.83 pd3T6vIK.net
>>878
本人の勘違いだろう
設定が間違っているのをライブラリの問題にしていると思われる
892:デフォルトの名無しさん
24/07/20 19:49:49.46 g11axyeV.net
>>880
読解力ゼロ民なん?
質問は、型チェッカーが型情報読めません で
それはそれで合ってる(型チェッカーは認知しないから)が回答で
付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ
893:デフォルトの名無しさん
24/07/20 20:09:38.66 4S4L7THY.net
>>875
データがおかしくなければ問題なし、おかしければNG。それのどこに問題が?
894:デフォルトの名無しさん
24/07/20 20:10:26.26 pd3T6vIK.net
彼は想定どおりのデータ型にならないと言っている
895:デフォルトの名無しさん
24/07/20 20:56
896::22.33 ID:4S4L7THY.net
897:デフォルトの名無しさん
24/07/20 23:13:59.91 3JBVPj+L.net
初心者に何一つ解決法を提示できない、あおる専門職が、また暴れているのか。
898:デフォルトの名無しさん
24/07/20 23:38:05.16 nWXlJ8rt.net
>>881
>付随して、パーサーは内部で型確定してるんだから、型チェッカーがそれ読みゃいいのにね って言ってるだけだろ
静的型チェッカーにプログラムを実行して外部TOMLファイルを読み込んでパースしてから型チェックしろと?
頭おかしくね?
899:デフォルトの名無しさん
24/07/20 23:43:19.64 n5damDMV.net
初心者です
Windows とmacで全く同じ環境を用意してもvscodeでjupyter が使えるのはmacだけで困っています。
ryeで環境構築していてpythonのバージョンは3.7~3.12それぞれで試しました
ライブラリはrye add jupyterのみ
Vscodeの拡張機能はpythonとjupyter
Macでは問題ないですが、Windowsでipynbを実行すると”connecting to kernel“から進みません
pyファイルで#%%を用いても同じです
カーネルの指定はしています
今はしょうがないのでwindowsではjupyterlabを起動して使っています
ライブラリのバージョンとwindowsの相性が悪いんですかね…?
900:デフォルトの名無しさん
24/07/20 23:54:41.64 NXGRRfPo.net
初心者でryeなんて非標準なツールつかうから切り分けできなくなる
901:デフォルトの名無しさん
24/07/21 00:10:32.64 H6hpsSWg.net
>>869
え?これ何?低学歴知的障害朝鮮人?
902:デフォルトの名無しさん
24/07/21 00:19:47.32 7gp2nlNY.net
さすがにこの自演は恥ずかしいw
903:デフォルトの名無しさん
24/07/21 04:12:49.88 6bp7hRiy.net
>>888
解決しました!分かりやすい解説ありがとうございます!
904:デフォルトの名無しさん
24/07/21 10:56:10.38 6bp7hRiy.net
質問しておいて解決しましたとだけ書くのも失礼なので…
pyvenv.cfgの中の指定のpython を変えたら解決しました。
つまり標準のpythonをryeのものにしているのがwindowsのjupyterではよくないようです。
仮想環境でごちゃごちゃやった感じではセキュリティの問題っぽいのでそっちいじればなんとかなりそうですが…
結局macではvscodeを使ってwinではjupyterlab使うことにしました
お騒がせしました
905:デフォルトの名無しさん
24/07/21 14:59:38.69 AhhCkcZ5.net
なんかお前一生環境構築してない?
906:デフォルトの名無しさん
24/07/21 15:04:29.78 AhhCkcZ5.net
プログラミングできないやつに限って環境だけ作って満足するやつはスゲー多いんだよな
結局何も書けないからやることがないというw
907:デフォルトの名無しさん
24/07/21 15:13:06.46 6bp7hRiy.net
>>894
FDTD法やってます!
今は高速化目指してます💪
908:デフォルトの名無しさん
24/07/21 15:52:43.89 AhhCkcZ5.net
>>895
そんなんやってる奴が初心者なんだ?
909:デフォルトの名無しさん
24/07/21 16:38:54.61 XlsTZxiY.net
>>896
はい!
910:デフォルトの名無しさん
24/07/21 16:43:16.67 AhhCkcZ5.net
>>897
フフッ
911:デフォルトの名無しさん
24/07/21 17:57:12.44 XSmlH7W8.net
質問にも答えず初心者を煽ってさらには返り討ちに合うスレですか…
912:デフォルトの名無しさん
24/07/21 18:03:02.20 AhhCkcZ5.net
>>899
だいぶ効いてるみたいだな
913:デフォルトの名無しさん
24/07/23 01:22:30.39 Rfg4Mjqa.net
>>893-894
昔の自称emacs使いにもそういうのがいたで
914:デフォルトの名無しさん
24/07/23 07:36:07.88 Uu3M5VDt.net
今はVSCode使いがそれだな
何でもVSCodeでやろうとして詰んでは暴れまくる
メモ帳でいいんだよPythonなんて
915:デフォルトの名無しさん
24/07/23 07:43:39.89 x/ET989s.net
vscodeの拡張はelispみたく手軽に始められないから秩序は保たれてる印象
916:デフォルトの名無しさん
24/07/23 09:37:49.97 HQr1sgjB.net
>>902
極論それ
環境云々よりまずコードをかけることが大事だからな
環境など後からいくらでも凝ればいい
917:デフォルトの名無しさん
24/07/23 09:47:38.48 n9YZQASq.net
まず書けるようになるためにはデバッガの有無は大きいと思うが
918:デフォルトの名無しさん
24/07/23 09:53:14.67 HQr1sgjB.net
最近はjupyterとか使えば対話的にプログラム書けるしpythonに限って言えば昔ほどデバッガは重要ではないと思うけどな
919:デフォルトの名無しさん
24/07/23 10:16:25.92 x/ET989s.net
Jupyterデバッガ搭載してるけど定義のちがい?
920:デフォルトの名無しさん
24/07/23 10:16:33.81 n9YZQASq.net
環境などどうでも良いのにいきなりjupyterなの?
921:デフォルトの名無しさん
24/07/23 10:47:56.05 HQr1sgjB.net
環境がどうでも良いのとjupyter使うのが便利とは直行する話
環境構築にこだわってドツボにハマるならメモ帳でも良いって意味だよ
文脈ちゃんと理解しような
922:デフォルトの名無しさん
24/07/23 11:02:25.16 n9YZQASq.net
文脈云々言うなら直交ぐらいちゃんと変換しような
923:デフォルトの名無しさん
24/07/23 11:52:19.83 aX/s2yiT.net
デスクトップアプリを作ってexe化して配布しても、FirefoxとChromeで「ウイルスかマルウェア」と断定されて、ダウンロードがブロックされてしまうので、がっかりだよ…
またそのブロック解除の方法が難しくて、まず素人はダウンロードできないし…
Edgeは賢いんだよな
ちゃんと検査してはダウンロードさせてくれる
924:デフォルトの名無しさん
24/07/23 12:00:04.69 lokdiXpj.net
誰が作ったかわからない実行ファイルなんて実行すべきでないから
925:デフォルトの名無しさん
24/07/23 12:00:56.55 HQr1sgjB.net
今時生exeダウンロードして実行しろはない
Macであってもよほど信頼があるもの以外は入れない
926:デフォルトの名無しさん
24/07/23 15:47:22.98 b7ip8NcQ.net
>>911
.zipとかに梱包した .exeでなく、赤裸々な .exeで配布したという意味? なぜ?
927:デフォルトの名無しさん
24/07/23 15:49:15.49 xnSNk6y3.net
zipで包まれてても嫌だけどな
928:デフォルトの名無しさん
24/07/23 16:25:49.95 x/ET989s.net
exe単体では嫌だからWebサイトで配布するんじゃないの?
Steamのインストーラもexeだよ
パッケージ化されてても導入するのは結局exeだし
929:デフォルトの名無しさん
24/07/23 17:12:12.55 aX/s2yiT.net
>>914
zipにしてるよ
それがブロックされる
930:デフォルトの名無しさん
24/07/23 17:22:15.64 xnSNk6y3.net
>>916
個人が作ったよくわからないプログラムパッケージをネイティブにインストールなんかしないってことね
931:デフォルトの名無しさん
24/07/23 17:37:17.95 TPPfHQM2.net
>>914
ZIP圧縮は暗号化されているものがあるから、ZIP圧縮の方が嫌われるように変化した。
932:デフォルトの名無しさん
24/07/23 18:14:35.00 b7ip8NcQ.net
>>917
ここPythonスレなので、exe化したPythonプログラムの話か。今気付いた。
ライブラリを含んでいるからウィルス認定されて当然という話をよく聞く。
別に exe化せんで、スクリプトで配布すりゃいいのでは。
933:デフォルトの名無しさん
24/07/23 18:37:50.57 nRtnWzRV.net
サンドボックスで振る舞いを確かめれば済む話じゃないのか?
934:デフォルトの名無しさん
24/07/23 19:18:10.39 TZI+ZhOX.net
自己解凍書庫の出番か
935:デフォルトの名無しさん
24/07/23 19:39:18.76 xnSNk6y3.net
あれも脆弱性の塊です
936:デフォルトの名無しさん
24/07/23 19:43:52.63 ZPmy+vgF.net
UPX
937:デフォルトの名無しさん
24/07/23 19:50:49.70 aX/s2yiT.net
>>920
pythonなんて使えない素人に配布してるので
938:デフォルトの名無しさん
24/07/23 22:34:55.62 Q9OV7LqX.net
コード署名なんて使えない素人が配布してるのでw
939:デフォルトの名無しさん
24/07/23 23:08:59.22 r/ZR0qO4.net
こんだけマルウェアやらランサムウェアが問題になってるのにいまだに何の保証もないexeを実行可能にしているマイクロソフトは反社会勢力と言っても過言ではない
この問題を長年放置してるのは狂ってる
940:デフォルトの名無しさん
24/07/23 23:12:04.08 RTFcCOtn.net
Chromeはzipの中身も見てるみたいだけどFirefoxもとなるとGoogle Safe Browsingのダウンロードのブロックリストにドメイン載っちゃってる可能性
941:デフォルトの名無しさん
24/07/24 03:59:46.12 /7/ZxMEj.net
>>927
ストアで縛ろうとしたら猛反対
俺のパソコンなのに何しやがるんてなるよ
業務ならポリシーで制限できるから落とし所
942:デフォルトの名無しさん
24/07/24 11:24:37.52 zc84AtQt.net
この板で見かけるpythonアプリをexe化して配布しようとしてる人って例外なく技術者としてのレベルが低いんだよね
しかもその自覚がなく他人のせいにするからタチが悪い
943:デフォルトの名無しさん
24/07/24 11:29:14.65 xsNragSm.net
超初心者用スレでレベルが低いとか言われても
944:デフォルトの名無しさん
24/07/24 11:39:51.52 pCtKanLE.net
>>930
しょうがない面あるよ
現場でのちょっとした業務効率化ツールにいちいち開発予算取れないし
Pythonやライブラリのインストールして回るのは面倒だし
exe一つ配布で済むならそれに越したことはない
945:デフォルトの名無しさん
24/07/24 11:45:11.42 UohJ1bhL.net
デスクトップアプリでも指示したファイル以外開けないような権限の厳しい仕組みを作るべきだった
946:デフォルトの名無しさん
24/07/24 12:02:23.84 BVC0yZgs.net
やっぱWebアプリが楽
pyscriptの発展に期待
947:デフォルトの名無しさん
24/07/24 12:42:15.38 oMWZGWxK.net
>>932
それはアプリの配布ポリシーも配布方法も確立できてないリテラシーが超低い会社に限られた話
>>926が揶揄してるように素人に配布してるのが問題じゃなくて素人がexeを配布しようとしてるのが問題なんだよ
948:デフォルトの名無しさん
24/07/24 14:17:03.29 y0qkp9N5.net
>>933
Macは野良の実行ファイル起動できないからな
せめてこれくらいはやれよって思う
949:デフォルトの名無しさん
24/07/24 14:55:30.46 uBykzA+Z.net
exeを自由に配布しようとしても、ブロックされてダウンロードされないし売れないしで、素人でも最初からMicrosoft sStore、App Store、android Play Storeで配布する方針でアプリ開発するべきなんだね
950:デフォルトの名無しさん
24/07/24 15:11:26.53 gQy7oTdL.net
>>937
python公式が配布してるexeのダウンロードかブロックされたことある?
951:デフォルトの名無しさん
24/07/24 15:17:26.99 uBykzA+Z.net
>>938
python本体くらいしか無いけど、ブロックはされなかった
952:デフォルトの名無しさん
24/07/24 17:01:13.31 KGoIVoV/.net
>>939
exeを自由に配布しようとしてもブロックされてダウンロードされないという認識が間違ってるってことだよ
953:デフォルトの名無しさん
24/07/24 17:34:45.81 Qm23Mb5z.net
いろいろ出来てなんぼのPCであれはだめこれはだめと言っていたら、
なんのためのPCだかわからないことになる
パターナリスティックでおせっかいなシステムはPCにはそぐわないし、
スマホみたいにがんじがらめなのは勘弁してくれ
954:デフォルトの名無しさん
24/07/24 19:22:40.43 uBykzA+Z.net
Microsoft Storeで販売してみるわ
日本語と英語で。
500円だけど、何事も挑戦
955:デフォルトの名無しさん
24/07/24 19:53:24.43 aZhJNMHQ.net
>>942
いきなり500円で買うやつおらんぞ
まずは機能減らして無料で出せよ
956:デフォルトの名無しさん
24/07/24 23:33:56.14 uBykzA+Z.net
>>943
いや、他所ではたまに売れてるんですよ
1週間に数本とか
exeファイルでは無いけどコード
(記事って書いてあるけど文章では無いです)
URLリンク(i.imgur.com)
exeファイルを売りたくなったので、Microsoft Storeにしようかと。
他所だとブロックされてしまうので
957:デフォルトの名無しさん
24/07/25 17:55:43.14 d36Rq1nw.net
EXEファイルは間違って実行してしまうことがあるから避けられているのになあ
958:デフォルトの名無しさん
24/07/26 08:22:41.37 3aGNttVJ.net
>>945
スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?
959:デフォルトの名無しさん
24/07/26 09:07:36.47 GoMxbApo.net
通常のスクリプトファイルはダブルクリックで実行してしまうことはないだろ
960:デフォルトの名無しさん
24/07/26 10:16:15.53 3aGNttVJ.net
>>947
MS-Windows をよく知らんのだけど、
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまうもんじゃないの?
961:デフォルトの名無しさん
24/07/26 10:19:30.49 8tpKdrFX.net
>>947
無知すぎるやろw
962:デフォルトの名無しさん
24/07/26 10:28:35.30 RKHjG1e0.net
バッチファイルなら起動するで
あと関連付けされてれば起動する
963:デフォルトの名無しさん
24/07/26 13:49:56.51 ymUuyp6y.net
スレタイが何度見てもくすだれにしか見えない
964:デフォルトの名無しさん
24/07/26 15:36:14.52 OCCNk7Vb.net
スレイタが何度見てもくだれすにしか見なえい
965:デフォルトの名無しさん
24/07/26 20:25:41.82 JylNHC7t.net
>>948
取り返しがつかないことを平気でするから、仕事だったら追放されるぞ。
966:デフォルトの名無しさん
24/07/26 20:27:18.02 JylNHC7t.net
>>948 のようにWindowsをMS-Windowsと書くのはジジイ確定
967:デフォルトの名無しさん
24/07/26 20:58:29.00 3aGNttVJ.net
>>953
MS-Windows をよく知らんのだけど、
関連付けって、取り返しがつかず、仕事だったら追放されるくらいオオゴトなのか。タイヘンなんだな。MS-Windows を使う仕事でなくて良かったよ。
968:デフォルトの名無しさん
24/07/26 21:10:48.91 JylNHC7t.net
> python something.py
↑これを実行すると言っているのは自分だろうに
969:デフォルトの名無しさん
24/07/26 22:30:59.89 3aGNttVJ.net
>>956
拡張子 .py とかのテキストファイルを、 python something.py などと実行してしまう、そんな仕組みを、「関連付け」と呼んでいるのと違うの?
よく知らんのだけど。
970:デフォルトの名無しさん
24/07/26 22:53:18.79 JylNHC7t.net
>>957
自分がそう書いているんだぜ?
971:デフォルトの名無しさん
24/07/26 22:54:17.60 JylNHC7t.net
>>957
946 デフォルトの名無しさん 2024/07/26(金) 08:22:41.37 ID:3aGNttVJ
>>945
スクリプト・ファイルでも間違えて実行することはあると思うが、
EXEファイル特有の間違いってあるの?
972:デフォルトの名無しさん
24/07/26 22:55:33.33 JylNHC7t.net
どんなOSだろうと実行してから「実行しますか?」なんて聞いてくるコマンドが普通なのか?
言っていることの意味がわからない。
973:デフォルトの名無しさん
24/07/26 23:03:13.17 GM2OWqhD.net
無知な>>947が暴れてますな
ジジイのほうがまだまとも
974:デフォルトの名無しさん
24/07/27 02:00:40.08 Frk3MPuk.net
>>958,960
何を言っているのか全然解らん。
系統立てて話してくれないだろうか。
975:デフォルトの名無しさん
24/07/27 11:13:05.30 qPRWWcgY.net
def a(arg1)のarg1は'normal,'auto','single'が選択肢としてありって、呼び出し元で引数の選択肢にインテリセンスが効くようにする方法ってありますか?
976:デフォルトの名無しさん
24/07/27 11:18:09.30 zo9+JWCR.net
そんな質問はchatgptに聞け
977:デフォルトの名無しさん
24/07/27 11:30:57.89 MJBjTLYo.net
Windows環境でPythonをインストールすると.pyなどの各種ファイルは
Python Launcher(py.exe)に関連付けされてダブルクリックでプログラムが実行されるようになってるよ
.batや.cmdのように標準で実行されるものもあれば.ps1のように標準ではブロックされるものもある
ただ.batや.cmdは.exeと違って一般ユーザーは使わないから設定でブロックしやすい
.exeもいろんな条件でブロックすることは可能だけど利便性がかなり落ちるのでバランスが難しい
978:デフォルトの名無しさん
24/07/27 11:35:07.21 VipTCpXk.net
>>963
enum
979:デフォルトの名無しさん
24/07/27 12:02:44.95 VipTCpXk.net
Literalがあったわ
980:デフォルトの名無しさん
24/07/27 20:42:42.63 cmTVxjYb.net
>>965
Anacondaから入れてるから初耳
勿論、勝手に実行はされない
981:デフォルトの名無しさん
24/07/28 15:34:57.49 v6kdbv5j.net
.pyダブルクリックでテキストエディタが起動してソース編集の方が有難い
.py実行したいときはコマンドプロンプトやエディタの方から実行出来れば充分
982:デフォルトの名無しさん
24/07/28 20:18:24.27 AOLFr8T9.net
>>969
そんなのは設定だろ
python界隈はこういう馬鹿が増えた
983:デフォルトの名無しさん
24/07/28 20:24:40.17 nQJ65Sob.net
個々人の嗜好の話題ではない。
984:デフォルトの名無しさん
24/07/30 17:32:38.17 PmWSmSbC.net
1 gchar 2001/03/27(火) 13:30
どうしょうもなく、くだらなくて恐縮ですが、
ギコ猫アプレットを作りたいと思います。
URLリンク(gikocat.20m.com)
まあ、感想なぞ書いて下さい。
985:デフォルトの名無しさん
24/07/30 19:00:55.75 xxzULaUh.net
>>972
多分ウイルスサイト
986:デフォルトの名無しさん
24/08/11 00:05:49.00 rz8PuyH+.net
しかし2001年アプレットとはまた…
987:デフォルトの名無しさん
24/08/22 10:19:36.95 IKT838Oo.net
死壊死壊
988:デフォルトの名無しさん
24/08/23 05:46:44.19 rXpsCAVX.net
asyncによる非同期処理を実装する場合、非同期にしたい呼び出される関数はasync defとawaitに書かなければならない認識であっていますか?
既存コードにCで書かれた通信処理dllへのラッパー関数があるので、dll呼び出し部まで書き直すか追加するのが手間なので良い手法があればと思いました。
989:デフォルトの名無しさん
24/08/23 14:35:19.98 TJ+3Kp9a.net
wrapperのwrapperを描こう
990:デフォルトの名無しさん
24/08/23 17:32:10.11 2MxBs/jY.net
Yo~!
991:デフォルトの名無しさん
24/08/26 13:05:01.33 +6LxARHT.net
宣伝じゃないですが
尼で損する→/dp/4297142856
書評は良いと思った
>なぜコードが間違っていないのにレビューで重箱の隅のような指摘を受けるのかが理解できるようになります。
992:デフォルトの名無しさん
24/08/26 15:22:01.32 xgRNJuaz.net
サプーか
993:デフォルトの名無しさん
24/08/26 19:53:41.84 FhzwHLyM.net
レビューで重箱の隅のような指摘を受けたことがあるんだろうね
994:デフォルトの名無しさん
24/08/26 20:38:35.96 TfC/Wz7r.net
横からだけど
おまえは完璧なコードを書きすぎる
と言われた事がある・・・
難しい部分を任されたことが無いってのもあるけど
その部分の動画もあるのかな
995:デフォルトの名無しさん
24/08/26 20:59:37.19 694qjtkr.net
レビューがめっちゃ桜臭いな
星3以下だと一気に評判落ちるので発売直後の星5が大事
996:デフォルトの名無しさん
24/08/27 00:42:37.95 jPnUMQmz.net
設計通りに実装していないやつが多すぎる
997:デフォルトの名無しさん
24/08/27 14:12:58.86 oHcafaf7.net
これ教えてくらはい
解く過程もお願いします
URLリンク(i.imgur.com)
998:デフォルトの名無しさん
24/08/27 14:13:20.99 oHcafaf7.net
(S)でshortだからSの上のRは無いのと一緒
6Ωと3Ωの並列の合成抵抗は2Ω
12Vかかってるから6A
999:デフォルトの名無しさん
24/08/27 14:13:37.32 oHcafaf7.net
答えは燃えるだよ
0A
1000:デフォルトの名無しさん
24/08/27 14:14:03.15 oHcafaf7.net
どっちが正しい?
1001:デフォルトの名無しさん
24/08/30 20:00:23.54 /S3k+zaQ.net
SQLAlchemy気に入った
おかげでpythonから離れそうにない
1002:勉強スレ誤爆より質問スレに移動
24/08/31 13:26:42.65 fwQH707u.net
関数やクラスにインデックスの指す中身の値でなく“インデックス指定”を渡したいのですがうまく出来ません
こんな場合どういうような考え方があるのでしょう(タプルでインデックス数字を渡す?)
# [[0,0,0,0,0],[[0,0,0,0,0]]
alist = [[0]*5]*2
# 値ではなく箱の位置を意図してるが…
hako = alist[0][3]
def change(b):
b = 3
return
change(hako)
print(alist) # 全部0のまま
change(alist[0][4])
print(alist) # こちらも全部0
実際にはrpgゲームの様々のステートやフラグやそのセーブを管理するクラスに
alist[6][15](王さまと喋ったとか)を1にするといった仕事をさせたいと試行錯誤しています
喋る関数、戦う関数やクラスのとこから発生しだいリストを直で操作すればいいのだけど
State.change(インデックス, 1)みたく一元的にやりたいとクラスを作ってきています
目的で位置の固定されたフラグなのでメニューを開いているかState.menu(1)、State.kingtalked(1)などとしその先のクラスの関数で位置を決め撃ちするのが良いのかななどと困って考えています
1003:勉強スレ誤爆より質問スレに移動
24/08/31 14:58:41.77 fwQH707u.net
設計からおかしいと思ったので質問は取り下げます
ロールプレイングゲームでゲーム状態(シナリオ進捗やパーティーのステータス状態やカーソル位置まで状態の復元可能)の情報は
どう作り、ゲーム中に持つのか、どこからリードやライトするのかについて混乱しています
ステータスマネージャーのようなクラスにこれ記録しといてと各所から投げればいいのかなと考えてるのが今で
逆に難しくなってしまってる、参考に出来そうなpython製ののrpgを見つけられていません
1004:デフォルトの名無しさん
24/08/31 15:42:25.61 Q7p5BAl/.net
ゲームプログラムの構造自体に悩んでるように見える
個々のパラメータはカテゴリごとにクラス化して
それらを保持するゲームカーネルクラスを考えてみては?
セーブ・ロードの時は所属クラスを識別可能なラベルを付けて
カーネルが各クラスに分配・収集する
もちろんカーネルは分散構造でもいい
1005:デフォルトの名無しさん
24/08/31 16:31:20.69 fwQH707u.net
ありがとう
クラス使い始めてみたばかりで継承など使ってないレベルなので意図の読み取りがあれですが
書いてくれた雰囲気はなんとなく理解しました
例えばシナリオ進捗や済みイベントのフラグ、世界が滅亡するまでの残り時間などの進捗データを保持させるカテゴリーなクラス
アイテムやそのソート順選択状態や現在カーソル位置などを保持させるアイテムGUIデータなカテゴリーのクラス
それらから収集しまとめて保持していてセーブで書きだし、ロード時に各所へセットしてから再開する統合クラス
ラベルで管理とは、辞書型だったりあるいは投げ込むクラス内のステータスごとに対応する関数で配置場所を固定して分けたらいいのかなと…頭が限界ですゆっくり考えてみます
1006:デフォルトの名無しさん
24/08/31 17:12:20.07 Q7p5BAl/.net
画面や入力は別のクラスにして
入力クラス→カーネルへのAPI
カーネル→画面クラスへのAPI
に分離した方が見通しよくなると思う
1007:デフォルトの名無しさん
24/08/31 19:54:44.30 E1cdB3xT.net
>>990
>>777
>alist = [[0]*5]*2
これやると詰む
1008:デフォルトの名無しさん
24/08/31 20:12:52.72 fwQH707u.net
>>995
しばらくなぜだろうと考え込んだ(もう1つのスレの方の指摘とあわせ)
…思い出した、要素のidが同じになって連動しまうんだっけたしかに挙動に困ったことある
もう一回この手の宣言について調べなおし学習しますどうも
1009:デフォルトの名無しさん
24/09/01 14:38:13.87 MnUgJTxK.net
元レスの主張をそのままリスペクトすると
ctypes の POINTER が超お薦め
1010:デフォルトの名無しさん
24/09/01 15:14:54.96 MnUgJTxK.net
>>990
URLリンク(paiza.io)
import ctypes
def a(p):
p.contents.value = 3
x = [[ctypes.c_uint32(j * 3 + i + 1) for i in range(3)] for j in range(3)]
print(x)
a(ctypes.pointer(x[1][1]))
print(x)
# [[c_uint(1), c_uint(2), c_uint(3)], [c_uint(4), c_uint(5), c_uint(6)], [c_uint(7), c_uint(8), c_uint(9)]]
# [[c_uint(1), c_uint(2), c_uint(3)], [c_uint(4), c_uint(3), c_uint(6)], [c_uint(7), c_uint(8), c_uint(9)]]
1011:デフォルトの名無しさん
24/09/01 19:02:55.77 tGCM6k6e.net
>>997
ありがとう
最終的には教えてもらった辞書型でうまく意図した役割をつなぐことに成功しました
「Pythonでゲーム作りますが何か?」というハテナのblogを参考にクラスというもの主体の作り方に触れ
そこのgithubのpython3ソースを見たりしながらタイルチップrpgでないadv寄りな自分のものにあてはめているところでした
ある程度のとこで連載は終わっていて残念、実践的ですごく参考になりました
1012:デフォルトの名無しさん
24/09/01 20:02:05.87 tGCM6k6e.net
次スレ
【まず1嫁】くだすれPython(超初心者用) その60
スレリンク(tech板)
スレ立てがNGRockにかかるためテンプレの一部変えました
1013:1001
Over 1000 Thread.net
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 416日 1時間 13分 25秒
1014:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています