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


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



1 名前:デフォルトの名無しさん mailto:sage [2021/12/27(月) 01:38:10.93 ID:GepmXCuJ.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/      ほぼ直

152 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 11:13:45.51 ID:piACNvDy.net]
https://pastebin.com/p4sKEE76

pynputでの左クリック検知と、tkinterのlabelでの左クリック検知を両立させることは可能ですか?
pynputが左クリックイベントを全て奪ってしまい、labelが反応しません

ランチャーを作ってまして、やりたいことは、

@ デスクトップを左クリックしたらウィンドウを表示する、
A ウィンドウのラベルを左クリックしたらウィンドウを閉じる、
B ウィンドウが表示されている状態でウィンドウ以外の場所を左クリックしてもウィンドウを閉じる

という動作です

@とBをpynputで、Aをtkinterのlabelでと思ったのですが、うまくいきませんでした

153 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:09:38.48 ID:LVRrrJUT.net]
質問している人とは別の人物ですが、
画面の変化するのを待って
画面が安定してから
操作を始めるというのは可能ですか?

154 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:12:06.54 ID:XLfwOUFr.net]
>>149
安定が何を指してるかはわからんけど、画像処理周りの話ならフレーム差分とってしきい値処理すればいいんじゃないか?
PILのImageGrabでスクショは読み取れる

155 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:16:27.17 ID:LVRrrJUT.net]
>>150
ブラウザとか読み込むときに「読み込み中」とか出たり
リダイレクトを始めたりするじゃないですか、
それらの動作が一通り終わって安定するまで
待ち合わせることは可能なんでしょうか?

156 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:36:57.02 ID:UC+QWPwn.net]
ブラウザは読み込み終わったってイベントが来るよ。それを待ってURLとで判定すればいい

157 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 12:48:54.51 ID:XLfwOUFr.net]
>>151
seleniumの話か。
152の言うとおりイベント待ちすればいい。

158 名前:148 mailto:sage [2022/02/05(土) 12:54:59.73 ID:piACNvDy.net]
https://pastebin.com/hwdHebzT

>>148ですがpynputのon_moveでマウス移動を検知して、
ウィンドウ上にポインタあるときはon_clickで何もしないようにして動くようになりました

ただマウス動かすたびにウインドウ情報の取得と座標の比較を行うので高コストです…
他に良い実装はないでしょうか?

159 名前:デフォルトの名無しさん [2022/02/05(土) 12:59:34.70 ID:/8OR3rgW.net]
>>144-147
みなさま
すみませんです。
何れにしましても
勉強になりました。

>「python ブラウザ操作」「python getwindowtext」
>「python キー操作 送信」
で勉強してみます。

合併金融機関で旧銀勘定システムの
統合とかがむずかしくてというような
ことを風の便りにききましたので
妙ちくりんな例示になりました。

160 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 13:17:57.22 ID:UC+QWPwn.net]
>>154
クリックするときだけ座標のウインドウ見たら?



161 名前:148 mailto:sage [2022/02/05(土) 13:18:56.20 ID:piACNvDy.net]
>>156
たしかにそうでした…
書き直してみます

162 名前:148 mailto:sage [2022/02/05(土) 13:38:51.69 ID:piACNvDy.net]
https://pastebin.com/EzZX8abA

最終的にウィンドウハンドルを識別に使うことで複数ウィンドウにも対応できました
ありがとうございました

163 名前:デフォルトの名無しさん mailto:sage [2022/02/05(土) 13:47:41.85 ID:UC+QWPwn.net]
ランチャーの上にほかのウインドウがあったら期待通り動かなさそうだな
windowfrompointかな

164 名前:148 mailto:sage [2022/02/05(土) 14:20:31.51 ID:piACNvDy.net]
>>159
ありがとうございます、確かに重なってる部分をクリックすると、
上に他のウインドウがあるのにランチャー上にいるという判定になっていました

教えていただいた関数を使って作り直してみます

165 名前:148 mailto:sage [2022/02/05(土) 15:31:23.48 ID:piACNvDy.net]
GetWindowPoint関数が返すのがラベルのウインドウハンドルで詰まりましたが、
GetParentで親ウィンドウのウィンドウハンドルを取得することでうまくいきました

166 名前:148 mailto:sage [2022/02/06(日) 18:24:09.07 ID:3q8vI9na.net]
皆さんWindowsの環境は何を使っていますか?
先輩がAnacondaを使っていたので自分もこれで始めたのですが、
pyファイルをダブルクリックしても起動できなくて困っています

167 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 18:46:40.90 ID:As9Eeh+2.net]
anacondaはダブルクリックして使うような用途向けじゃないから・・・
それでもやりたいならユーザーフォルダのenvの中にあるpythonを関連付けして、パスも通しておいたらいけるんじゃないのか?

168 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 19:14:00.88 ID:4Gtoye46.net]
エクスプローラ上でshift+右クリックするとコンソールを開くオプション出てくるからそこから実行するのも手だね

169 名前:デフォルトの名無しさん mailto:sage [2022/02/06(日) 20:11:49.90 ID:UpadUQRd.net]
pyはIDEに関連付け変えた方が利便性高そう
コンソール不要なアプリはpywにするし

170 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 02:26:12.83 ID:8Of01QOa.net]
前は(必要に迫られない限り絶対に使いたくない)Anacondaだったけど一年半くらい前に公式のPythonに出戻った
それまではpylauncher+Anacondaだったね



171 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 04:15:45.66 ID:/WFZHSQq.net]
>>165
input()使ってコンソール表示をキープする使い方もあるのでそのままがいい

172 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 08:07:41.99 ID:X3clQbRB.net]
forループを指定の時刻になったら抜け出したいんだが何か方法ありますか?

例えば21時になったらループを抜けたいです

173 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 08:25:36.92 ID:nOkVXb94.net]
now=datetime.datetime.now().hourで現在時刻を取得してif now>21:みたいな感じでいけるのかな?

174 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 11:33:42.97 ID:v1HyCHbN.net]
>>168
whileループじゃなくてforループ?

175 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 12:11:38.49 ID:Afq51Jp9.net]
signal.alarmで割り込んでグローバルに参照できる情報を更新
forではそこを確認するだけ
あるいはEventMachineみたいなスケジューラに乗っかる

176 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:36:04.90 ID:uf+aDjpD.net]
文字列のリスト渡す引数があるんですが、1つだけならリストじゃなくて文字列1つだけでも渡したいんです
文字列だけで渡すとforで1文字ずつのループになってしまいます。
リストで渡したみたいに同じようにforで1回回したいんですが何か方法ありますか

177 名前:デフォルトの名無しさん [2022/02/07(月) 20:37:56.01 ID:WNsmATfv.net]
文字列が来たらリストに入れてあげればいいのでは

178 名前:デフォルトの名無しさん [2022/02/07(月) 20:45:24.77 ID:WJa2Jvem.net]
if isinstance(x,str): x=[x]

179 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 20:48:11.70 ID:Afq51Jp9.net]
https://docs.python.org/ja/3/library/functools.html#functools.singledispatch
でオーバーロード書けるけど好きじゃない

180 名前:148 mailto:sage [2022/02/07(月) 22:02:57.91 ID:QDp/4Uhu.net]
メモリの確保と解放を自分ですることって可能ですか?
tkinterのラベルに画像を表示したいのですが、
tkinter.PhotoImage()の戻り値が勝手に開放されてしまい表示されません



181 名前:148 mailto:sage [2022/02/07(月) 22:05:00.21 ID:QDp/4Uhu.net]
>>163
そうなのですね、やっぱり純正?Pythonがいいんでしょうか…

>>164
Win11だからか出てきませんでした

182 名前:デフォルトの名無しさん mailto:sage [2022/02/07(月) 22:22:44.80 ID:dQ2UCnOY.net]
>>177
win11なら幸運だ
windows terminalがプリインストールされているのでは?
なければストアから落とすとpowershellを直接開ける。
設定次第でwslもいけるぞ

183 名前:148 mailto:sage [2022/02/07(月) 23:12:32.22 ID:QDp/4Uhu.net]
>>178
windows terminal、入ってました
ただ使い方がよく分からなかったので、時間のあるときに調べてみます
ありがとうございます

184 名前:デフォルトの名無しさん [2022/02/08(火) 05:30:13.15 ID:nYjjFW0t.net]
tkinter photoimage 表示されない で検索しよう
秒で解決するから

photo = tk.photoimage(画像)
widget = tk.widget(master, image=photo)

185 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 06:33:41.40 ID:x7KPLs8u.net]
>>180
ありがとうございます
インスタンス変数周りについて理解しました

https://pastebin.com/XUdUcPEz

説明が複雑になってしまうと思い後出しになってしまったのですが、
ソースを短く手直ししてアップロードしました

今回はItemクラスにiconインスタンス変数を持たせて、ここにPhotoImageの戻り値を入れています
そしてItem.iconから、ラベルを作成しています

本当はラベル作る関数にItemクラスのリストを渡して作らせているのですが、
この書き方でも再現されました

よろしくおねがいします

186 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 07:11:21.68 ID:x7KPLs8u.net]
>>181
itemをLauncherのself.item_listに入れたら表示されるようになりました
Item.iconはインスタンス変数だったけど、itemが一時的な変数で開放されちゃってたのかな…

ただ関数を再帰呼び出ししている元のソースではこの手法でもだめでした
難しい

187 名前:デフォルトの名無しさん [2022/02/08(火) 07:53:09.80 ID:gLJTNggL.net]
いやだからワンクッション置けっつの
まず生成しろ
p = photoimage(i)
それを使え
w(image=p)

もっと単純なテストケースで試せ
上手くいく場合と、いかない場合の境界線を探せ

188 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 12:03:45.73 ID:Wt+Lt5co.net]
>>182
グローバルなリストなりなんなりにItemクラス全部ぶち込んでいけばいいだけ

189 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 21:50:34.21 ID:9OOJa9HQ.net]
クロージャとデコレータの違いが良くわかりません
どなたか猿でも分かるように説明お願いします

190 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 22:13:40.37 ID:8MdYtPVO.net]
>>185
なぜその2つが同じ(ようなもの)だと思ったのか理由を少し書いてくれない?



191 名前:デフォルトの名無しさん [2022/02/08(火) 23:31:00.76 ID:nzlDnO0s.net]
デコレータはクロージャで処理を追加する際の糖衣の認識

def logger(func):
__def inner(*args,**kwargs):
____print(‘start’)
____func(*args,**kwargs)
____print(‘end’)
__return inner

@logger
def add(x,y):
__print(x+y)

デコレータは↓を簡単に表記する

add=logger(add)

192 名前:デフォルトの名無しさん mailto:sage [2022/02/08(火) 23:58:54.11 ID:x7KPLs8u.net]
>>184
ありがとうございます
とりあえず動くようになったのですが、多分色々な要因があって原因が特定できませんでした…
また明日以降原因を探ってみようと思います

193 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 00:58:23.86 ID:9lBFb0U2.net]
Windowsでパスのセパレータが混在する原因を調べていたら、tkinterが原因だった
filedialogとTkinterDnD2で発生するようだ

こんな感じで対応してみた
files = filedialog.askopenfilenames(filetypes=fTyp, initialdir = iDir)
files = [str(pathlib.Path(p)) for p in files]

なにかまずい点や、もっとスマートな書き方ありますか?

194 名前:デフォルトの名無しさん [2022/02/09(水) 08:57:49.87 ID:yefmpe+I.net]
スマートな書き方以前に、再代入するな。

195 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:31:16.02 ID:4FhfLNQw.net]
pipでcshogiというパッケージを入れようとしたら

cshogi/_cshogi.cpp:635:10: fatal error: 'init.hpp' file not found

というエラーになったのですが、何したらよいでしょう。
依存関係で怒られたCythonやnumpyは入れました。
Python3.9.6でmacOS12.2です。
ググってみると、boost/python/init.hppというのが見つかりましたが、C++のboostライブラリをいれなさいということでしょうかね、、、

196 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:35:44.94 ID:gJYxYm5I.net]
それソースからインストールじゃないか?
pip install cshogi
だけでいいと思う。試しにやったらほぼ素の環境で何のエラーもなく入ったぞ

197 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 11:44:04.48 ID:4FhfLNQw.net]
>>192
配布元のインストール方法を読んでもそんな気がしたし、多分そうだと思います。
が、私もpip install cshogiとしただけなんですよね。
venv環境下だからって、それも関係ないですよねえ。
あるいはM1マシンだから?と思ったけどintelマシンでも同じ、、、今晩から連休中にかけて、これを使って色々試そうとしてるので気になって仕事にならないです。

198 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 13:09:33.88 ID:4FhfLNQw.net]
>>193
Windowsとlinuxはバイナリ配布してるようなので、なんとかビルドするしかないみたいです
わざわざ試してみて頂いてありがとうございました。

199 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:18:07.67 ID:BADAjEq6.net]
>>190
初期化の直後でさえ禁止するのは流石に脳死では

200 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 14:47:52.14 ID:iY5PkkMN.net]
>>189
Windows のRuby で、フォルダをDrag & Drop した

Ruby では、File.expand_path で、
Windows のパス区切り \ を、/ に変換できる

\ を表示するために、\\ となっている

p ARGV[ 0 ]
#=> "C:\\Users\\Owner\\Documents\\あ"

puts ARGV[ 0 ]
#=> C:\Users\Owner\Documents\あ

p File.expand_path( ARGV[ 0 ] )
#=> "C:/Users/Owner/Documents/あ"



201 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 16:26:09.83 ID:4FhfLNQw.net]
>>194
もう出てこなくていいと言われそうだけど進展。
Boostライブラリをインストールして以下のようにしたら進展しました。こんなテクがあるとは。

env LDFLAGS="-L /usr/local/Cellar/boost/1.76.0/lib/" CFLAGS="-I /usr/local/Cellar/boost/1.76.0/include/boost/python/" pip install cshogi

今度はこのパッケージのposition.hppがないって言われたけど、またちまちま調べます。pipの仕組みを勉強しないといかんですね。

202 名前:デフォルトの名無しさん mailto:sage [2022/02/09(水) 19:10:26.80 ID:OJhEklXT.net]
ctypes難しいな
memcopyが何故か超低速で困る

203 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 02:02:13.50 ID:EK9g6ENE.net]
pipに色がついててびっくりした

204 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 09:15:03.24 ID:puUJkgbn.net]
プログレスバーがオサレになったね

205 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 09:27:43.38 ID:Tgo9r7yk.net]
richがデフォルトになったってリリースノートに書いてある

206 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 20:11:51.82 ID:DDROH4gR.net]
ゲーム画面などが非アクティブでも、動作させることをPythonでやりたいです。
動作としては、ssupi+teseのようなものですが、
その仕組みも知りたいのですが、教えてください!

207 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 20:47:07.10 ID:Bfsj9FyQ.net]
https://pypi.org/project/icoextract/
EXEファイルからICOファイルを抽出したくてこれをインストールしたのですが、これって自分のコードでimportして使うライブラリじゃなくて単体のスクリプトですか?

208 名前:デフォルトの名無しさん mailto:sage [2022/02/10(木) 21:34:58.76 ID:Bfsj9FyQ.net]
>>203
ダウンロードしたの開いたらオブジェクト記述されてて使えました

209 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 02:51:16.69 ID:79Vi/Nfi.net]
>>202
挙動からしてリモートプロセスにDLLをロードしてWin32APIかWinProcをフックしてると思う
PythonではDLLを出力できないので多分無理

210 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 03:00:35.80 ID:79Vi/Nfi.net]
SetWindowsHookExのCallWndProcフック(例外的にDLL要らない)はどうだったっけ?と思ったけど、このフックではメッセージを変更できませんって書いてあるから駄目そうだ
https://docs.microsoft.com/ja-jp/windows/win32/winmsg/about-hooks#wh_callwndproc-and-wh_callwndprocret



211 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 18:55:58.63 ID:Lg8I1vzk.net]
PyQtってtkinterのようにラベルに画像とテキストを一緒に表示することって可能ですか?
探してもそれらしきもの見つからなくて

212 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 21:06:34.36 ID:9UXBOAM+.net]
>>207
これでやりたいこと実現できない?

https://symfoware.blog.fc
2.com/blog-entry-2299.html

213 名前:デフォルトの名無しさん mailto:sage [2022/02/11(金) 21:48:34.11 ID:Lg8I1vzk.net]
>>208
ありがとうございます
[画像]タイトル
[画像]タイトル
のようなリストを作りたくて、ページ拝見させていただきましたが少しイメージと違うかもしれません


かなり強引ですが、moveの絶対位置レイアウトで、ラベル2つをペアにする方法で実装してみました
https://pastebin.com/xSdLz5x7

pyqt、無理やりなら色々なことできそうですね

214 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 04:41:58.05 ID:OxHugf3n.net]
ttp://codepad.org/ZCf9omJq

クラス変数の初期化で「name 'NUM' is not defined」ってエラーが出るんだけど、何が原因なんだろうか?
Python 3.10.2 64bit なんだけど、構文間違ってないよね?

215 名前:Hルトの名無しさん mailto:sage [2022/02/12(土) 05:01:01.55 ID:OxHugf3n.net]
codepad.org/PRA31FBR

codepadだと問題なく動作するから環境なのかな
windows10+vscode+python3.10.2 64bit でだけ起きる固有の現象…?

216 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 07:42:00.42 ID:qCFMK4fY.net]
import sys
print(sys.version)

codepadはテンプレから外そっか

217 名前:デフォルトの名無しさん [2022/02/12(土) 09:07:50.55 ID:DNWolfIy.net]
>>209
PyQT知らんけど、一般的なGUIアプリ開発なら、
まずは、"[画像]タイトル"のクラスを作って部品化することを考えるもんじゃないの?

218 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 09:46:01.09 ID:5WRcTUV/.net]
>>213
ありがとうございます、その方向で作ってみます
PyQtはクラス継承で色々いじれるようなので楽しみです

219 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 10:11:14.01 ID:fCVp/cR1.net]
>>211
ideoneだと同じエラーが出るな
https://ideone.com/3rfxza

多分書き方的にはこうなるはず
https://ideone.com/bOR5p3

公式ドキュメントの所にほぼ同じサンプルで失敗する事例があるけど
そのコードと同じ
https://docs.python.org/

220 名前:3.10/reference/executionmodel.html []
[ここ壊れてます]



221 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 12:09:54.30 ID:OxHugf3n.net]
>>215
なるほどありがとう
この書き方がダメなのはわかったけど
クラス名.クラス変数 って書いても通らないし
__init__ でセットするとインスタンス生成のたびに実行されちゃうし困ったな

クラスごとに1回しか実行されないコンストラクタってないんだろうか

222 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 12:23:50.95 ID:DQy4vyYE.net]
こうしちゃうww

class test:
global NUM
NUM=64
POW=[pow(NUM,a) for a in range(0,5)]

223 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 13:02:31.30 ID:OxHugf3n.net]
>>217
それクラス内変数じゃなくなっちゃってる…

一応できたけどこういう方法しかないのかな
インスタンスを生成するまで初期化されないのが気持ち悪いけど仕方ないか
https://ideone.com/kCp5Yq

224 名前:デフォルトの名無しさん [2022/02/12(土) 13:32:52.88 ID:qcs4WmEG.net]
何でインスタンス変数じゃダメなの

225 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 13:53:20.84 ID:DQy4vyYE.net]
a = test()
a.output()

b = test()
b.output()

こうしたときにインスタンス変数だとpowをaつくるときとbつくるときの二回実行しちゃう
powぐらいだったらいいけど、重い処理だったら・・・
ってことじゃないかな
class内にstatic変数おけたらいいんだけどないのかな

226 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:11:19.51 ID:qCFMK4fY.net]
クラス定義しているモジュールの変数にすれば間に合う気もするけど
classmethod/staticmethodにするかメタプログラミングするかしか

227 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:30:51.17 ID:KYIWQrD2.net]
>>218
内包表記やジェネレータ式がクラス直下ではクラス変数を参照できないというだけなので
list(map(pow, itertools.repeat(NUM)…とかfor文+appendとか…で良いんじゃない?

2なら関係無く動くけど、nonlocal文とか出来た割にこんな罠があるとは

228 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 14:56:50.33 ID:5pn6K0Tu.net]
test.POW=[pow(test.NUM,a) for a in range(0,5)]
ってのをクラス定義の下にインデントなしで書けばいいんじゃないの
なんか問題ある?

229 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 15:50:52.05 ID:OxHugf3n.net]
>>219
動的に何万と作っては捨て続けるので
いちいちインスタンスごとに持ちたくないんだ

230 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 15:52:47.87 ID:OxHugf3n.net]
>>223
継承クラスを作ったときに初期化を忘れそう



231 名前:デフォルトの名無しさん [2022/02/12(土) 19:13:13.57 ID:dzEAJuso.net]
vscodeでflake8を使っていますが、メソッドの後ろに()を書かなくても警告してくれません
これを警告してもらう方法ってありませんか?

232 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 19:21:22.02 ID:qCFMK4fY.net]
型ヒント書いてこ

233 名前:デフォルトの名無しさん [2022/02/12(土) 19:38:11.77 ID:dzEAJuso.net]
メソッドだけでなく関数でも、例えば
print
と書いただけで()をつけないまま改行しても警告してくれません

234 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:04:13.67 ID:Sz70mZLP.net]
関数オブジェクトが置いてあるのはおかしなことではない
コールバック関数に関数食わせるたびにケイコクサレタラ溜まったもんじゃない

235 名前:デフォルトの名無しさん [2022/02/12(土) 20:06:20.66 ID:XbUiA07Q.net]
myprint = print
myprint('woooo!!!!!!')

236 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:06:57.27 ID:Sz70mZLP.net]
関数オブジェクト食うのは高階関数か。
とにかくコールしなくても使い道はある。

237 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:19:30.83 ID:995Y4clk.net]
flake8、すごいね
お前のコード汚すぎる!ってたくさん言われた
自分の環境ではprint(とかなってたら警告されます

238 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:28:51.81 ID:XcSi1DQ3.net]
aa = print
のように代入するのはあり得るけど
print
だけってありえるの?
pythonだと実行時のエラーすら出ない

ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな

239 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 20:43:06.60 ID:Sz70mZLP.net]
文字列を直置きしてdocstringにしちゃうような言語だしなぁ
pydroidだとstatement seems to have no effectの警告が出る

240 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:19:26.94 ID:Tm8PqFX/.net]
202です。
>>205さん
そうですか…。出来ないのは残念ですが、教えていただきありがとうございます。



241 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 21:33:52.67 ID:40whDPBS.net]
>>226
ちゃんとファイルを保存してる?
Pylance何かと違って、保存前には動作しないよ

242 名前:デフォルトの名無しさん [2022/02/12(土) 21:56:57.57 ID:dzEAJuso.net]
>>236
はい、保存してます
警告もでないし実行してもエラーも出ずスルーされるだけです
pythonはこういうもんなんでしょうか?

243 名前:デフォルトの名無しさん [2022/02/12(土) 22:07:27.93 ID:kBzBXJs5.net]
RustとHaskellは、コンパイルを通った時点でバグが無いことを保証されると主張してますね。
Pythonに限らず、その他の言語は、まあそういうもんでしょう。

244 名前:デフォルトの名無しさん mailto:sage [2022/02/12(土) 22:32:52.77 ID:40whDPBS.net]
>>237
代わりにpylintを使えばエラーを出せるよ
ただ、ちょっと細かすぎて例外設定で除外しないと煩わしいことになるけど

245 名前:デフォルトの名無しさん [2022/02/12(土) 23:41:28.59 ID:za8M83yS.net]
>>233
関数オブジェクト理解してる?

246 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 00:14:22.17 ID:ckMeWHs6.net]
>>240
そういう返しが来るってことは print ってだけの使いかたもあるってことなのか

247 名前:デフォルトの名無しさん [2022/02/13(日) 04:55:00.94 ID:sMX7fMbN.net]
上でも言われてっけどtkinterのeventとか
x.bind('<1>', print)
みたいな例はいくらでもある

248 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 07:06:20.17 ID:18RMiGPm.net]
233はなんの副作用もないステートメントの話をしてるだろ
それ副作用あるじゃん

249 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 09:46:47.61 ID:X4ZyWjWq.net]
こんな文字列を直置きしてdocstringにしちゃうような言語をやってると、引数に渡されてスタックに積まれる関数オブジェクトと特に作用のない関数オブジェクトの違いが理解できなくなるぞw

250 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:12:28.71 ID:ckMeWHs6.net]
>>242
それは a=print と同じ使いかたでしょ



251 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 13:27:15.78 ID:yoBtg/nD.net]
>>233
> ほかの言語だとこういうのあり得ないからIDEに警告表示出るよな
C言語でも同じだよ、文法的には問題ない
ただ意味がないから大抵の処理系で>>234が書いてるような警告は出るけどエラーではない

252 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:21:12.09 ID:yB05jN77.net]
関数へのながーい引数を変数に入れて渡すことってできませんか?


args = text="テキスト", img="img.png", color="#FFFFFF"
makeItem(args)

みたいな感じです






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

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

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