[表示 : 全て 最新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/      ほぼ直

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)

みたいな感じです

253 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:34:48.08 ID:yB05jN77.net]
>>247
自己解決しました

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

254 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 17:42:58.98 ID:PEAS4D91.net]
>>248
すごい細かいけど、辞書を渡す際はkwargsを仮引数にするのが暗黙のルールだったりする

255 名前:デフォルトの名無しさん [2022/02/13(日) 18:20:42.99 ID:MWit14K9.net]
PythonでリストH=[a[2][3], a[5][7]]
を与えた後
H[0]を呼び出すとa[2][3]が返ってきますが、このx座標、y座標である2と3を返す関数はどう作られますか?

256 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:30:07.26 ID:jfCaeP/j.net]
b = a[2][3]
c = a[5][7]
H = [b, c]
という評価を一行で書いてるだけなので
Hの時点だともうその情報はない



257 名前:デフォルトの名無しさん [2022/02/13(日) 18:49:18.90 ID:MWit14K9.net]
>>251

ありがとうございます。
ではx座標とy座標を呼び出すにはどうしたら良いでしょうか?

258 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 18:55:51.07 ID:qU7qP4LH.net]
よくわからないんだけどH[0]を呼び出すとa[2][3]が返ってくるなら
tmp = H[0]
x = tmp[0]
y = tmp[1]
になるんじゃないの?

259 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:05:34.35 ID:4NLUjdRo.net]
Pythonのサンプルコードでは
from hoge import piyo
import hoge
のような記述をよく見ます
これは行儀が悪いように見えますが、Pythonでは問題のないことなのでしょうか

260 名前:デフォルトの名無しさん [2022/02/13(日) 19:14:02.30 ID:ZyRs1D7f.net]
>>250
座標もセットにしてリスト化する
H=[(a[2][3],(2,3)),(a[5][7],(5,7))]

261 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 19:57:37.82 ID:yB05jN77.net]
>>249
勉強中なので細かいこと大歓迎です、ありがとう

262 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:51:30.91 ID:JnTPIF3C.net]
>>252
欲しいの座標でなく次元では?

263 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 20:54:22.96 ID:JnTPIF3C.net]
すみません >>257 は読み間違いなので無視してください

264 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:09:57.57 ID:yB05jN77.net]
メンバー変数「__name」を持つ「Human」クラスがあったとして、
これを継承した「HyperHuman」クラスは、
継承元の「__name」を参照できないんですか?

クラスの外から参照しないメンバ変数を__付きにしまくったら継承先で参照できなくなってしまった

265 名前:デフォルトの名無しさん [2022/02/13(日) 21:18:20.00 ID:MWit14K9.net]
>>253
すみません、
うまく行きませんでした


>>255
ありがとうございました、思考によって問題を回避出来ますね。私に欠けていたのは問題に食らいつく精神力でした。

266 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:23:23.11 ID:+cgrIz8j.net]
>>254
俺もこれ気持ち悪いわ
誰かスッキリさせてくれんか



267 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 21:54:36.39 ID:yB05jN77.net]
>>254
import xxx only zzz
みたいにしてほしかったよね

268 名前:デフォルトの名無しさん mailto:sage [2022/02/13(日) 22:11:57.52 ID:jfCaeP/j.net]
>>262
xxx.zzz以外のxxx.*参照できない状態を保持するのめんどそう

import xxx
zzz = xxx.zzz
と書けるしfrom import自体いらんなら分かる

269 名前:デフォルトの名無しさん [2022/02/13(日) 22:23:48.09 ID:nVrhNNmO.net]
>>259
そのままの名前ではできない
継承先から別の名前で山椒できる
self._Human__name

https://ideone.com/9xMJkE

270 名前:デフォルトの名無しさん [2022/02/13(日) 22:25:44.83 ID:nVrhNNmO.net]
s/山椒/参照

参照の育て方調べてたからミスった

271 名前:デフォルトの名無しさん [2022/02/13(日) 23:42:00.06 ID:n9deEbJE.net]
>>264
できるけど
わざわざ__してるのを呼び出しちゃうのかーいって気はするなw

272 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 00:04:11.74 ID:BHqD30LB.net]
>>264,265
そのタイポの仕方がちょっと笑える
「参照の育て方」はツボったよw

273 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 01:00:25.73 ID:a1vo03Tu.net]
super関数使う方法ってなかったっけ

274 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 06:51:44.54 ID:E8yArpIy.net]
>>264
ありがとうございます
変数名自体が変わってアクセス防いでるのかあ
同じ継承先からは参照したいので、_一個にしておきます

275 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 07:03:17.01 ID:t59hyUv0.net]
if os.path.exists(p):
をpathlibで書き換える場合、
if p != "" and Path(p).exists():
で完全に同じになりますか?
空文字以外に注意しなければいけないものありますか?

276 名前:デフォルトの名無しさん [2022/02/14(月) 09:12:46.38 ID:EEHmhlKD.net]
空文字判定要る?



277 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 09:19:17.38 ID:t59hyUv0.net]
>>271
空文字判定しないと、空文字のとき Path(p).exists()がTrueになる
空文字はpathlibで "." として扱われるみたい

278 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:03:53.41 ID:SdWG8Yth.net]
pが文字列なら同等とあるけど
https://github.com/python/cpython/blob/main/Lib/test/test_os.py
https://github.com/python/cpython/blob/main/Lib/test/test_pathlib.py
テストコードの範囲内で使うのが無難

279 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 10:43:07.13 ID:TVm+ejPZ.net]
富士通「年収3500万円」の衝撃 ソニー、NECも戦々恐々の「グローバル採用競争」

「富士通年収3500万!」日本のIT企業の年収も、高額化してきました

ゼロから起業するよりも事業承継(小さな会社の買収)が圧倒的に有利である3つの理由

「エース人材だって起業OK」、NECは挑戦者が集う場をつくる

NECなど「出向起業」 大企業人材、起業しやすく

IHIが副業解禁、人事制度で他の重工大手を先行する狙い

カルビー/国内社員3900人を対象に副業解禁

280 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 11:25:14.57 ID:QXoUwWbT.net]
>>272
ひでー。そんな地雷関数使いたくないな

281 名前:デフォルトの名無しさん [2022/02/14(月) 11:35:18.27 ID:LyAfGJhX.net]
どのシステムでも何も渡さなければ現在のディレクトリとして処理するだろ

282 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:03:25.17 ID:QXoUwWbT.net]
c#のsystem.io.file.exists()やdirectory.exists()、winapiのfindfirstfile()(ディレクトリの存在確認もできる)
どれも空文字は失敗するよ

283 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:46:17.43 ID:yQZmxBH4.net]
スクレイピングする際にlxmlでhtml内に任意のcssセレクタが含まれてればtrue、含まれていないときはfalseを返すことってできますか?

284 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 12:59:49.50 ID:SdWG8Yth.net]
>>277
パスはpathlibへの引数でexists()の引数じゃないんよ

285 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:05:45.54 ID:HOsCpiZ6.net]
Ruby では結論としては、空文字列と、. で同じ結果になる

require "pathname"

p path = Pathname.new( "" ) #=> #<Pathname:>
p path.to_path #=> ""

p path_ab = path.join( "a/b" ) #=> #<Pathname:a/b>
p path_ab.to_path #=> "a/b"

# --------

p path_2 = Pathname.new( "." ) #=> #<Pathname:.>
p path_2.to_path #=> "."

p path_2_ab = path_2.join( "a/b" ) #=> #<Pathname:a/b>
p path_2_ab.to_path #=> "a/b"

286 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:25:01.55 ID:T1NsaTsY.net]
おう落ち目の言語の話は聞いてねえぞ



287 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 13:44:26.39 ID:cFSy1VCv.net]
>>280
それ同じじゃないぞ

288 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 14:14:19.21 ID:7Dm4+XiT.net]
>>280
1嫁😡

289 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 15:21:21.44 ID:OJkUcli+.net]
>>250
私も初心者なのでアドバイスなどおこがましいのですが...
class作るのが簡単かと...
class a(object):
  value=[[0,1,2,3,4,5],[0,2,4,6,8,10],[0,3,9,12,15]]
  def __init__(self,x,y):
    self.x=x
    self.y=y
  def ans(self,x,y):
    return(a.value[x][y])
  def xy_ans(self):
    return((self.x,self.y))

H=[a[2][3], a[5][7]]
hoge=H[0].xy_ans()

290 名前:デフォルトの名無しさん [2022/02/14(月) 15:23:55.60 ID:OJkUcli+.net]
まちがいました。
最後から2行目は
H=[a(2,3), a(5,7)]です。(5,7)でエラー出ますけど...

291 名前:デフォルトの名無しさん mailto:sage [2022/02/14(月) 17:38:13.29 ID:t59hyUv0.net]
>>273
情報ありがとうございます。
テストコード長い・・・
空文字以外は気にしなくていいと思い込むことにしよう

292 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 07:19:17.06 ID:MKfHEQkf.net]
GUI(tkinter)からyt_dlpで動画ダウンロードするものを作っていたのですが
Visual Studio Codeから実行した場合正常に処理できました
直接実行するとエラーになりました(拡張子pyw)
拡張子をpyに変えると直接実行しても正常に処理できました

一般的に拡張子pywで正常に処理できるかを実行せずに判断する方法ありますか?
あるいは、拡張子pywでも正常に処理する方法ありますか?

今回のPGMはsubprocess.runを使わずに
with YoutubeDL(ydl_opts) as ydl:
____result = ydl.extract_info(youtube_url, download=True)
のような形式で呼び出しています

293 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:10:26.60 ID:U1LhfB3E.net]
たまに以下のようなミスをしてしまうのですが、これを防ぐor容易に発見する
にはどうしたらいいでしょうか。

foo=default_value
if a_condition:
  boo=new_value # 本当はfooを更新したかったがbooとミスタイプした

# -> あれ、fooの値が変更されてない、みたいな

294 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:14:04.17 ID:jBoRoSxS.net]
考えて名前つける

295 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:23:08.93 ID:Hej5n2W4.net]
>>288
関数化 or if-else

296 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 08:45:57.03 ID:dhf8je8S.net]
>>288
if a_condition:
  old_foo=foo
  boo=new_value
  if old_foo == foo:
    raise ValueError("error!")



297 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 09:05:32.17 ID:W7tQrrGw.net]
>>288
VS code

298 名前:デフォルトの名無しさん [2022/02/16(水) 09:52:08.68 ID:aoiSu09N.net]
pylanceさいつよ # type: ignore

299 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:39:04.96 ID:YEGQLb4J.net]
pylanceってパイランスって言うんですか? 昔「だっちゅーの」っていう女の子二人組が...

素朴な疑問ですが、補完機能があるようなものを使うとして、上記の場合にbooが
間違いであることはどうやって分かるんでしょうか。もし同じスコープ内にbooという
変数が既にあった場合、booとタイプするのを間違いとは断定できないのでは...
もしbooがなかったら、「プログラムに影響を及ぼさない変数をいじってんじゃねーよ」
というツッコミは可能だと思いますが。

300 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 11:54:00.21 ID:1mMAv7cD.net]
そりゃ重箱の隅を突き始めたらすり抜けるケースなんていくらでもあるよ
もともとコードとして合法なんだもん

301 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:23:29.89 ID:jBoRoSxS.net]
>>291 だってold_booとか書いたら一緒だからね
もうコンパイラ言語を使えば

302 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:26:03.04 ID:DXO0iyBK.net]
type hints書かないの?(書き捨てのぞく)

303 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:29:48.85 ID:tzGoh0bw.net]
エディタが人間のやりたいことを理解できる時代になったら検出できるんじゃない?

304 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 12:30:41.98 ID:tzGoh0bw.net]
怪しい部分にはassert文挟むとか、291みたいにエラー吐かせるのが基本じゃないか

305 名前:デフォルトの名無しさん [2022/02/16(水) 13:11:53.73 ID:1hjdKt99.net]
根本的に、1文字ミスって別の変数にアクセスできちゃう書き方というか、その命名規則や設計思想は良くないね
動けば何でもいーじゃんとか言って後々にツケが回るやつだ

306 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:37:06.42 ID:m8Y8zgQ2.net]
>>287
print()とかのコンソールを前提とした戻りを
拡張子pyのときに限定しないと行き場がなくてエラーが出るんじゃない?



307 名前:デフォルトの名無しさん [2022/02/16(水) 14:51:55.36 ID:w27+Spzi.net]
エラーメッセージくらい貼ろうぜ

308 名前:デフォルトの名無しさん mailto:sage [2022/02/16(水) 14:56:01.74 ID:m8Y8zgQ2.net]
no_consoleモードだと、エラーメッセージがそのままでは拾えないような






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

前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