Pythonのお勉強 Part67

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ aa97-ncNf)
垢版 |
2022/05/26(木) 13:45:15.95ID:veL/wiLO0
!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オフィシャルサイト http://www.python.org/
◇Pythonドキュメント https://docs.python.org/ja/3/
◇まとめwiki ttp://python.rdy.jp/

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

〇前スレ〇 Pythonのお勉強 Part66
http://mevius.5ch.net/test/read.cgi/tech/1636970383/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ### ​
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
2022/06/16(木) 01:29:33.24ID:cYlpzbPX
5chの仕様なのですか?
例えば、
headersやipアドレスから5ch側が何かしらレスポンスに反映していたり
スレのソースコードとhtml.parserの相性が悪いとかそういうことではなくて?
bs4で意図した取得ができない5chの仕様とは具体的に何でしょうか >>266

あとそもそもですが、仮に自分が「これは5chの仕様だな」とわかっていたら
答えがわかっているので質問自体していないと思いますよ

ちなみにソースコードを手動でコピペして成型して
<div class="thread"><div class="post"></div>・・・・</div>
の部分だけをbs4したら上手くいきました
2022/06/16(木) 01:38:45.16ID:5RJuUFJv0
ちょっとやってみたけど普通に見える
なにがおかしいの?
2022/06/16(木) 01:59:31.90ID:cYlpzbPX
>>268
普通に見えるとは、
エラーもなにも出ずに該当のレス分だけ再帰できた、ということではなく
該当レスすべてclass="message"のdiv要素も取得できた、ということですか?

自分の場合はprint(post) の結果が
<div class="post"><div class="meta"></div></div>で終わっているものと
<div class="post"><div class="meta"></div><div class="message"><span class="escaped">
のようにmessageまで取得できるものがあります

こういう感じです
https://i.imgur.com/9rhTBbp.jpg
改めて手動ソースコピペやってみましたがなぜかできませんでした
(簡単なdomならば意図した通りに取得はできます)
2022/06/16(木) 02:14:06.76ID:5RJuUFJv0
私の環境では全部のpostにmessageがありますね
2022/06/16(木) 02:28:08.68ID:cYlpzbPX
>>270
自分のところではやはり消えてしまいます
そして進展があり、最小構成で再現できました

html='''
<div class="thread">
<div class="post">
<div class="meta">
<span class="name"><b>名前1</b>ワッチョイ<b></b></span>
</div>
<div class="message">
<span class="escaped">レス1</span>
</div>
</div>
<div class="post">
<div class="meta">
<span class="name"><b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b></span>
</div>
<div class="message">
<span class="escaped">レス2</span>
</div>
</div>
</div>
'''#.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")

おそらく<b><a href="mailto:sage">名前2</b>ワッチョイ<b></a></b>の部分
なぜかmailto:sageのときは<b></a></b>で挟み込んでいます(この部分を取り除いたらmessageのところが取得できました)
.replace('<b><a href="mailto:sage">',"<b>").replace("<b></a></b>","")を切り替えるとmessage取得できました。
(同じようにreplaceしたres.textはなぜかできませんでしたが・・replace漏れがあっただけかもしれない)
2022/06/16(木) 02:38:25.71ID:5RJuUFJv0
5chがぶっ壊れたhtmlを返してくるんですね
それだとバージョン違いとかで動作がおかしいことはありえる
parserをhtml5libにしてみるのがいいかもしれません
2022/06/16(木) 02:42:16.24ID:cYlpzbPX
.replace('<a href="mailto:sage">',"").replace('</a></b>','</b>')
にしたらいけました。

>>272
>html5lib
なるほど
bs=_soup(res.text, "html5lib")
いけました
ありがとうございます!
2022/06/16(木) 11:22:03.44ID:Wf4C+ynBa
pythonのライブラリやメソッドが何の例外を出すかって調べる方法で一番簡単な方法ってありますか?
2022/06/16(木) 11:41:46.02ID:oNoslqOO0
>>274
インタラクティブシェルで
>>> help(ライブラリやメソッド)
ちゃんとしたIDEなら同等のことやってくれる
276デフォルトの名無しさん (ワッチョイ 7fb1-54Fs)
垢版 |
2022/06/16(木) 12:09:49.06ID:3QgJWt630
pythonがcoreダンプで止まった。

pythonって止まる時、エラーコードを吐いてとまるから、直すの楽チンじゃん。
「え、coreダンプ」ってなるよね。

色々みたら、無限ループに陥って止ったらしい。
フー、久しぶりのディバッグって感じw
2022/06/16(木) 12:11:13.69ID:Wf4C+ynBa
>>275
ありがとうございます
機械的なチェックではなくドキュメント頼みになるんですね…

vscodeでos.statは例外出すよなあとか思って調べてて、osモジュール自体OSError返すってドキュメントに書いてあったけど、statからはそんな説明出てこなかったから気になってました
エラー出すとか言いながらos.path.existsはディスクエラーのときにfalse返すみたいだから厄介だなあとかも思ったり
278デフォルトの名無しさん (アウウィフ FF67-iSSN)
垢版 |
2022/06/16(木) 12:58:31.81ID:uKxWv5AjF
とりあえず try で全部捕まえろ
2022/06/16(木) 13:09:38.53ID:oNoslqOO0
>>277
そこはしゃーないね
静的解析も限界あるしJavaみたいな検査例外じゃないと
公式なら記載漏れはないはず

>>278
想定してへん例外まで捕捉したらあかん
280デフォルトの名無しさん (ワッチョイ 032c-USYz)
垢版 |
2022/06/16(木) 14:27:49.49ID:yWAyGzG60
なにかに処理を投げて待つときは
正常時、想定異常時、例外(デバッグ用)の3つを書きたい
2022/06/16(木) 15:15:09.58ID:IvGDyNVy0
正常な例外もある
282デフォルトの名無しさん (アウアウウー Sa67-iSSN)
垢版 |
2022/06/16(木) 19:39:52.07ID:hEUIHdUOa
>>279
握り潰すのはダメだが
想定される例外はそれなりの処理して
想定されてない例外はそのままthrow(raise)すれば良いだろ
2022/06/16(木) 20:49:06.27ID:IvGDyNVy0
関与しない例外は何もしないで呼び出し元に任せる
2022/06/16(木) 21:44:47.93ID:y3rAaRHS0
自分が想定してなかった例外をそのまま上流に移譲しても上流はもっと想定しようがないがな。
そういうのはもうpanicでいいじゃん、と。
2022/06/17(金) 01:32:37.32ID:xcJCAQEI0
そういうのは大域ハンドラで捕まえるもんだけどPythonは雑魚いからないんだよね
残念だ
2022/06/17(金) 10:12:12.20ID:VXwKdRVI0
それはそれで面倒だな
適切な階層の人が処理する、が一番柔軟でいいと思うけど
2022/06/17(金) 20:49:22.65ID:+4ZRuZfu0
ディレクトリ扱うとき、osとpathlibどっちが主流?
いつもos使ってたんだけどpathlibでできてosでできないようなことってある?
2022/06/17(金) 20:56:13.19ID:VXwKdRVI0
rmdirはどうやっても不便なので、subprocessでcmd /c rmdir呼んでますが
289デフォルトの名無しさん (ワッチョイ 3b5f-6JsC)
垢版 |
2022/06/18(土) 12:34:17.47ID:+Yt2p0300
iot勉強したくてラズパイ買ってPythonで動かそうと思ってるんだけどその質問ここでしていい?
2022/06/18(土) 12:37:48.98ID:6Dag0ThDM
ラズパイの開発言語って大抵はpythonかjsでしょ
ラズパイ固有の話ならラズパイスレのほうが回答貰えそう
291デフォルトの名無しさん (アウアウウー Sa47-vQ73)
垢版 |
2022/06/18(土) 13:08:04.28ID:V1rBblcpa
ラズパイなら電気板
2022/06/18(土) 13:26:49.40ID:TJ89mfHC0
どこで動こうがpythonはpython
言語仕様とかアルゴリズムの話なら共通でできる

でもどうせ詰まるのはラズパイ特有のライブラリ関連だろうから、
最初からラズパイの集まりにいた方が速い
2022/06/18(土) 13:41:29.97ID:6H4js5OL0
>>289
とりあえず質問内容書いてみ
スレ/板違いなら内容に応じて親切な人が誘導してくれるかも知れないし
2022/06/19(日) 00:26:09.17ID:m8jSBDD80
Djangoのテンプレートでオーバーライドするときにオーバーライドされるファイル名をextendsで書くけど無限ループ?かエラー?にならない理由は?(されるほうもするほうも同じファイル名なのに)
2022/06/19(日) 12:33:42.89ID:DR2Q5Ltm0
tensorflowで、学習させるときはGPU使ったほうが速いけど、学習データ作るときはCPU使ったほうが速い
強化学習で学習データ作成と学習を繰り返すとき、どちらにするか悩むというか、できれば都合よく切り替えてほしいんだけど、そういう機能ってないかね?
2022/06/19(日) 12:59:09.66ID:aGdRxJfT0
with tf.device(DEVICE):
で囲ってやってる
2022/06/19(日) 14:10:30.22ID:GIry7IXXH
>>296
いい情報ありがとう
学習だけGPUにやらせるようにしたら明らかに速くなったわ
学習はサクサク、その他は遅延なくいくようになった
ファンがうなることもないし最高だねありがとう
2022/06/19(日) 14:17:23.29ID:ImR3q9b/0
何学習させてるの?
2022/06/19(日) 15:04:46.51ID:mFXr9uBN0
そりゃセンシティブな画像とかでしょ
2022/06/19(日) 15:19:49.93ID:ImR3q9b/0
興味はあるけど活用例が思いつかないのでやる気にならない
猫と犬が判別できても何も得しない
2022/06/19(日) 15:24:46.09ID:v/jfVV5IH
>>298
今はAlphaZeroの本に従って三目並べ
技術的に不満な点を全部解決してから他のゲームに移ろうかと
2022/06/19(日) 15:40:27.94ID:ImR3q9b/0
好奇心だけでやるにしても、youtubeで公開したら興味持ってくれそうな新規性のある内容でないと
2022/06/19(日) 16:03:11.20ID:KT0YqJ+X0
お前にやれとは誰も言ってない
2022/06/19(日) 16:11:14.18ID:ImR3q9b/0
電子工作もそうなんだよな
いろいろ作れる知識と技術は揃ったけど、さて作るものが何もない
仕方ないのでLEDをチカチカさせる
2022/06/19(日) 16:13:45.50ID:ZyUc5d+aH
最初から新規性求めるのはどうかと思うね
まずは基礎を固めてその上でどうするかだろ
新規性だけ提案して完成度の低いものを作ってもパクられて改良されてオリジナル主張されるだけ
2022/06/19(日) 16:44:50.31ID:ImR3q9b/0
往々にして基礎を固め終わった時点で行き先を見失うんだよ
高専とかで具体的な課題に挑戦してる人たちが羨ましい
2022/06/19(日) 16:57:15.15ID:aGdRxJfT0
俺も最初の強化学習はAlphaZeroをオセロに適用したやつだった
結構いい題材だと思うわ
2022/06/19(日) 17:09:23.39ID:1eYD3N4yH
すぐに目的がなくても、基礎を完璧に固めておけば、アイデアが出たその時にすぐに実現できる
アイデアが先走っても、実力がなければ結局完成しなかったり、できても嘘くさかったりする
だから基礎は重要
2022/06/19(日) 17:19:20.52ID:ImR3q9b/0
でもアイデアなんか皆無じゃん
「やる理由を見つける」という不思議なことになってる

技術の習得自体が楽しいから、という動機で構わないけど、
それなら何か目的がありそうな思わせぶりは嘘になる
2022/06/19(日) 17:22:39.99ID:CQcbRoeX0
環境構築の学習が難しい
ネットにあるハウツー通りにはやれるけど、DockerとかAnacondaとかの違いがよくわからんし
参考にした記事書いてる人も実際そんなわかって無さそうな雰囲気あるし

どこ読めばいいんだ
2022/06/19(日) 17:24:15.55ID:KUEgo1bmH
実はもうすでにアイデアがあって実現しちゃったんだよね
自分のカラオケのスコアデータから伸びしろのある曲を抽出するAI
実際に一気に点数が伸びた曲もあって自分ではけっこう使える
他人にうらやましがられるようなものじゃないけど、自分でオリジナルのもの作って役に立って満足だよ
2022/06/19(日) 17:26:24.38ID:CQcbRoeX0
あとやっぱ初心者向け学習終わった後何すりゃええねん、ってのがあるな
ゲームで例えるなら、最初の村は細かくクエスト目標表示されてたのに
最初の村クリアした途端、広大なオープンワールドゲーが始まって放置された感がある
2022/06/19(日) 19:47:43.27ID:BUoOnpyZ0
世界中に天才がたくさんいて
役に立つこと、儲かることは
その人たちが率先してやっているからなあ
凡人は追いつくのさえおぼつかない
2022/06/19(日) 20:55:53.41ID:GIry7IXXH
三目並べいじってたらだいぶ本のコードとは違うものになったw
本の内容でも無敵の引き分けマシーンはできるんだけど、できた結果は引き分け方に面白みがないものなので、もっと面白い引き分け方に誘導する工夫をあれこれ考えている
役に立たないけど楽しい
315デフォルトの名無しさん (オッペケ Sr3b-Xghq)
垢版 |
2022/06/20(月) 00:07:55.86ID:etQFdaAQr
>>312>>314が伸びないヤツと伸びるヤツの違いを端的に物語っているな
2022/06/20(月) 00:47:10.32ID:3bt1t/j50
>>314 が伸びるかどうかはわからんけど楽しそうでなによりだし >>312 が伸びないのは俺にもわかる
2022/06/20(月) 01:00:32.11ID:X20uvhuh0
こういうの作って、一週間で
と無茶振りされて基礎固めとかすっ飛ばしてどうにか形に仕上げるのが一番速く上達する
2022/06/20(月) 01:16:57.42ID:eaEy6Djy0
無事生還して
2022/06/20(月) 12:07:32.93ID:DqbRE9XnM
改造して遊べるサンプルプログラム集があれば良いのに
320デフォルトの名無しさん (JP 0He6-2bYa)
垢版 |
2022/06/20(月) 12:21:54.36ID:FyBBrco7H
質問です。

pipでvirtualenvをインストールした後
virtualenvコマンドを入力すると
command not found
になります。

$ pip install virtualenv --user
Successfully installed distlib-0.3.4 filelock-3.7.1 platformdirs-2.5.2 six-1.16.0 virtualenv-20.14.1
$ virtualenv -p python3 .venv
-bash: virtualenv: command not found

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

OSは、macOS 10.14.6です。
2022/06/20(月) 12:38:29.97ID:bxeKTafS0
>>320
hash -r
Pythonじゃなくシェルの話
322デフォルトの名無しさん (アウアウウー Sa47-vQ73)
垢版 |
2022/06/20(月) 17:57:48.17ID:67whDYmfa
rm -rf /
323デフォルトの名無しさん (ワッチョイ 0b01-pVNA)
垢版 |
2022/06/21(火) 00:26:02.74ID:OYLJ7OO30
from django.contrib.admin.sites import AdminSite, site as default_site
これ2つインポートして一つのリネームあるけどどういう意味?
324デフォルトの名無しさん (ワッチョイ 0b01-pVNA)
垢版 |
2022/06/21(火) 00:27:56.57ID:OYLJ7OO30
昔のバージョンのdjangoだと
from django.contrib.admin.sites import site as default_site, AdminSite
になっててますます分からん
325デフォルトの名無しさん (ワッチョイ 0b01-pVNA)
垢版 |
2022/06/21(火) 00:30:30.92ID:OYLJ7OO30
あー分かったぞ
from django.contrib.admin.sites import site as default_site
from django.contrib.admin.sites import AdminSite
こういうことか
2022/06/21(火) 17:50:04.76ID:MJ9GCdKb0
#ネストしたリストを使ってナルトの模様を描画したい
#ナルトの大きさ、記号、線のオフセットはユーザーから受け取りたい
def naruto_generator(size, naruto_char,offset):
naruto_matrix =[]
#空のリスト[]]を含む配列を、ユーザーの指定の長さで作成し、縦の数だけ複製

for i in range (size):
naruto_matrix.append([0 for i in range(size)])

#描画の現在位置であるカーソルを設定
cursor = 0
#ナルトがサイズの半分である中心に到達するまで処理を行う
while cursor <= size //2:
#上の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[cursor][i] = naruto_char
#右の縦線の描画
for i in range(cursor, size-cursor):
naruto_matrix[i][size - cursor -1] = naruto_char
#下の横線の描画
for i in range(cursor, size - cursor):
naruto_matrix[size - cursor -1][i] = naruto_char
#オフセットでカーソルを進めてから左の縦線を描画
cursor += offset
for i in range(cursor, size-cursor):
naruto_matrix[i][cursor] = naruto_char
return(naruto_matrix)
#あまりpythonぽくないですね、全部リスト内包表記でやってしまう猛者とか期待します

matrix = naruto_generator(size=40, offset= 3, naruto_char="#")
2022/06/21(火) 18:35:57.00ID:6NZqjzdl
ナルトのマーク?の定義ってどうだったっけ
>>326
print('\n'.join([''.join(map(lambda c:'■' if c=="#" else '□',m)) for m in matrix]))
https://i.imgur.com/Kx46VjU.jpg
これでいいのかな
2022/06/21(火) 19:02:38.54ID:dw9eNT750
愚直に適当な螺旋の関数をXYテキスト座標全体で描画
2022/06/21(火) 19:49:24.95ID:MJ9GCdKb0
>>327
できれば一筆書きで
右に向かって10進み、下に向かって10進み、
左に向かって10進んで、帰りの上方向の縦線をオフセット分を減らした9進んで
というループで中に向かってオフセットを減らしていきたいです
ネストのリストでやると難しいですね。。。
2022/06/21(火) 20:59:30.02ID:6NZqjzdl
質問とはあんまり関係ないけど>>326のコードのインデントはこれで合ってるのだろうか
https://techiedelight.com/compiler/?Ymjo
2022/06/21(火) 21:05:02.19ID:MJ9GCdKb0
>>330
やばい、貼る前にいじってたら
おかしくしてしまったようです、見直します
2022/06/21(火) 21:19:12.45ID:M65qXj3y0
全角スペースでインデントできればいいのにな
strip()では消えるんだからスペースだと認識はしてるんだろ
333デフォルトの名無しさん (ワッチョイ 7397-pVNA)
垢版 |
2022/06/21(火) 22:12:09.56ID:jjyHbonw0
>>329
内包表記にコンビネータ―のテクニックを組み合わせて再帰でうまいことやればできるはずなんだが、
再帰をコンビネータで表現するのがうまいことできなかった。一旦関数に名前つけてやればできるのだが。
ちなみにコードとしてはだいたいこんな感じになるはず。

https://ideone.com/rrKqSU
334333 (ワッチョイ 7397-pVNA)
垢版 |
2022/06/21(火) 22:16:18.25ID:jjyHbonw0
>> 329
ちなみに、素直に書けばこんな感じ。

https://ideone.com/3hzvte
2022/06/21(火) 22:32:28.95ID:MJ9GCdKb0
>>334
ありがとうございます、勉強させて頂きます
2022/06/21(火) 23:46:03.38ID:Hg0PvelR0
>>329
https://ideone.com/qXUgxS
numpyなしだから配列初期化まわりが雑多
2022/06/22(水) 00:30:28.22ID:U1EMQlUyd
https://wandbox.org/permlink/KR2ROy5Ruf1bSRqm
338デフォルトの名無しさん (ワッチョイ 0b01-ToRJ)
垢版 |
2022/06/22(水) 17:00:40.96ID:zGZSF73Z0
pythonやりたいんだが
vsかcharmかコラボか。
複数のgpuを使いたいならどれがおすすめかな?
2022/06/22(水) 17:07:24.97ID:B6sxfOLx0
ぜったいにcharm
さもないと、イヌのふんをふみます
340デフォルトの名無しさん (ワッチョイ 0b01-ToRJ)
垢版 |
2022/06/22(水) 17:08:56.37ID:zGZSF73Z0
>>339
まじかw
何でcharmがいいのですか?
2022/06/22(水) 17:43:11.73ID:uPuQk0KY0
vscode/jupyterで十分なのにライセンス買ってしまったんやろうなぁ
2022/06/24(金) 21:38:40.61ID:XAULLIej0
vscodeのtabnineってめっちゃすごいね
すらすら書ける
2022/06/24(金) 23:35:30.80ID:i0e9JHiD0
>>342
え?あいつバカすぎない?
有料プランなの?
2022/06/25(土) 15:39:03.14ID:pT1NEJ3W0
>>343
いや、ほぼ直すけどさw
そのうち精度あがるんじゃないのかな?
有料プランのみ?
2022/06/25(土) 21:58:35.29ID:31dL8FPF0
>>339
C♯と違って最初に始める環境の選択を間違えると
思いっきり犬の糞を踏みそうな怖さがあるよなPythonって
2022/06/25(土) 22:14:29.02ID:sy3gkj2S0
PyCharmってvscodeと比べてどこが優れてるのかわからんな
vscodeに拡張機能入れてりゃ変わらなかったりする?
2022/06/25(土) 22:32:05.22ID:xswAbNMO0
わざわざぐぐってコピペしなくていいように、定型文を集めた虎の巻が手放せないけど、
それが勝手に生成されるなら便利かもしれん
2022/06/26(日) 00:48:54.14ID:uMfc5d+C0
>>344
有料だと複数行一気に予測ではいるらしいから、一度見てみたいのはあるけど、多分バカだと思ってる
349デフォルトの名無しさん (ワッチョイ 4fdd-8fzX)
垢版 |
2022/06/26(日) 18:33:11.84ID:SVge1WKV0
最後だけ-100となります。
この挙動の説明お願いします。
>>> def mypow(x,y):
... return x**y
...
>>> mypow(-10,2)
100
>>> x=-10
>>> y=2
>>> x**y
100
>>> -10**2
-100
2022/06/26(日) 18:41:32.27ID:nfXqcTpPM
>>349
**のほうが単項-より優先順位が高いから
https://www.javadrive.jp/python/num/index3.html
2022/06/26(日) 18:52:00.32ID:HNnHj7ob0
そんなややこしいところに挟まなくても
2022/06/27(月) 00:38:50.29ID:Dzg4/XUoM
日本の強姦の80%は在日クソチョンが
犯人なんだぞ!
強姦民族クソチョン!
2022/06/27(月) 01:33:11.57ID:LvH0QZVT0
残りの20%は最下層のネトウヨ
2022/06/27(月) 20:41:17.19ID:l5VWGtDi0
標準以外のパッケージを使うスクリプトを配布するとき、実行環境を汚さないためにはvenvみたいな
仮想環境を使ってもらうかpyinstallerでexe化するかしかないっていう状況は相変わらずなのかな。
Webpackみたいなbundlerが使えたらいいんだが。
2022/06/27(月) 21:00:16.71ID:3Cki++yu0
汚さないのが目的ではなくて、環境を一意に指定するのが目的

でもみんな最新にしとけば問題ないことが殆どだし、
有効活用できてるケースがあんまり想像できない
2022/06/27(月) 21:38:56.96ID:l5VWGtDi0
いや、俺の質問は汚したくないってのが目的なのよ。
2022/06/28(火) 11:11:33.91ID:Wax0p9Ha0
ということは目的がズレてるから待ってもゴールはやって来ないね
無駄な祈りお疲れ様
2022/06/28(火) 11:42:54.09ID:vfqO3j4W0
新しいのにしちゃうと動かない、みたいなややこしいのだけ例外的にvenvで括り出す
みたいな使い方かな
2022/06/28(火) 20:45:55.87ID:Ru3pSFWq0
>>356
そういう場合に限ったわけじゃないけど、自分のスクリプトで使うためのパッケージを利用者の環境に
インストールしてもらうのは心苦しいじゃん?

Perl/Python/Ruby世代の言語だとそれが当たり前だったんだろうけどいまだに同じような状況ってことね。
2022/06/28(火) 20:46:47.22ID:Ru3pSFWq0
×>>356
>>358
2022/06/29(水) 13:20:15.72ID:rmxqMmo9M
unittestの質問です。
def hoge():
foo()
bar()
みたいな関数でfooとbarの間で外部サーバーの状態変更を行うコマンドを動かしたいです
mockで、bar()の挙動は変えずに別の処理を割り込ませる、ってできないかと調べてたんですが、どうも情報が見つからず…

良さげな方法ないですかね?
2022/06/29(水) 14:20:31.28ID:jH3FmWiVM
>>361
テストのときだけ外部サーバーの状態を変更するコマンドを実行したいの?
外部サーバーと状態とbar()に依存関係があるの?
2022/06/29(水) 16:29:26.31ID:rmxqMmo9M
>>362
どちらもそのとおりです

処理fooと処理barの間で、プログラム外部に対して設定変更の処理を実行したい、というのがやりたいことです
2022/06/29(水) 17:41:04.26ID:LPaHF0v3M
Pythonでメジャーなmock方法を詳しくは知らんが
mockライブラリってmoak後の関数からmock前の関数を呼ぶ方法が大抵提供されてないか?
2022/06/29(水) 18:40:53.76ID:JrawfGiOM
>>363
barが外部サーバーの状態を取得する箇所をmockする(正確にはstubだけど)
テスト対象処理の中間にテスト時だけコードをはさむのはやっちゃダメだと思う
2022/06/30(木) 11:02:52.65ID:M9OeQIKqM
>>365
ありがとうございます
推奨される方法ではないんですね

一応side_effectを駆使して期待したテストは行えるようになったのですが、心に留めておきます…
2022/07/01(金) 14:02:50.16ID:aBs3RPAkr
変数の後ろにコロンをつけるとどんな操作になるのですか?
a:1
との記述をみかけたと後輩に聞かれてハテナ状態なんです
見間違いが打ち間違いかと思うんですけどエラーでないので気になってます
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況