[表示 : 全て 最新50 1-99 101- 201- 301- 401- 2ch.scのread.cgiへ]
Update time : 12/09 17:01 / Filesize : 93 KB / Number-of Response : 405
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

Pythonのお勉強 Part66



1 名前:デフォルトの名無しさん mailto:sage [2021/11/12(金) 07:48:11.11 ID:vp8lzav70.net]
!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://codepad.org/      ほぼ直感的に使える。Run codeボタンあり。
ttp://pastebin.com/     まずまずシンプル。
ttp://dpaste.com/      とてもシンプル。消えるまでの日数は十分長ーく指定のこと。

◇Pythonオフィシャルサイト www.python.org/
◇まとめwiki ttp://python.rdy.jp/

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

〇前スレ〇
Pythonのお勉強 Part65
https://mevius.5ch.net/test/read.cgi/tech/1621749112/

次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured

72 名前:デフォルトの名無しさん [2021/11/17(水) 10:36:40.12 ID:wlAtkNPK0.net]
jsonは無駄が多い
SQLiteでええやん

73 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 10:46:13.37 .net]
sqlだとソースからみるときクライアント選ぶのがなぁ・・

74 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 10:48:59.66 ID:XqIxGMI20.net]
無駄の多さならxml

75 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 11:44:41.09 ID:qr7EHiL50.net]
>>71
ありがとう!これなら見えるね。

76 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 12:52:40.46 ID:XqIxGMI20.net]
python2の方が良かったのに
という点ってある?

77 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 13:10:53.17 ID:HN5Eyc2m0.net]
IronPythonは未だに2やで

78 名前:デフォルトの名無しさん [2021/11/17(水) 14:16:22.07 ID:wlAtkNPK0.net]
print

79 名前:デフォルトの名無しさん mailto:sage [2021/11/17(水) 15:57:05.68 ID:4FTJCengM.net]
>>65
強いて言えば、一時ファイルに書き込んでからrenameで上書きした方が安全、くらい

80 名前:デフォルトの名無しさん [2021/11/18(木) 09:17:27.97 ID:tpBIFt92M.net]
最初からSQLite使えばいい。
ジャーナリングも標準であるし。



81 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 17:38:05.48 ID:naW8oYaR0.net]
否定はしない

82 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 18:04:56.64 ID:ah9sw/Zw0.net]
俺は嫌だ

83 名前:デフォルトの名無しさん mailto:sage [2021/11/18(木) 23:29:42.52 ID:/dHqMjeMa.net]
asyncioはI/Oに効く
データベースの読み書きとか通信処理とか
バックグラウンド処理はCPUにオーバーヘッドがある時

84 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 07:39:18.17 ID:OFtNpZ320.net]
3.8.5でwin8.1で動くものをwin7に持っていくと、
subprocess.Popenでエラーになって動かない

最新のpythonはそもそもwin7にインストールできない
win7で動くもっと新しいバージョンはある?
無い場合は何か解決方法はある?

85 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 07:50:08.35 ID:UKOjKE+50.net]
>>84
エラーメッセージは?

86 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 08:01:48.17 ID:OFtNpZ320.net]
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

実行しようとしてるのはbatファイルで、.batまで書くとエラーにはならない
でもサブプロセスとしては動かなくて、処理はそっちに移行して終了してしまう
shell=Trueを付けても同様の動作になる
やりたいのは、いつ止まるか判らないコマンドをサブプロセスとして動かして監視すること

87 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 08:08:51.54 ID:+sXFtDSXD.net]
Pyの知識以前のWinのシェルの知識だな
cmd . exeをスイッチ付きで起動してやればいい

88 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 10:41:55.94 ID:fOs9i175r.net]
3.7だと動くのかどうか

去年ですらopenCVがPython3.8で動かないとか問題になってたなあ

89 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 10:47:38.84 ID:fOs9i175r.net]
この辺が時々問題になるから
じゃあwheelで取ってくるかと思い
pep425とかget_supportedとかやってみたら無くなってる

調べたらutils.compatibility_tagsとかになってた

それをふざけてcolaboratoryでやってみたら3.7までしか対応してなかった次第

90 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 11:03:06.60 ID:OFtNpZ320.net]
perlだとwin7の時点で既に固まってたので、環境が古くて困ることは無かったけど、
pythonはまだ進化を続けてるので、後方互換性はかなり怪しいな
本番環境側をwin10にしてしまおう



91 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 11:18:00.59 ID:eyeX0xyMF.net]
>>84
cmd /K
とか
shell=FalseまたはTrueかな
この辺いい加減に描いてると動かない

92 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 14:17:42.60 ID:ysK9uB2VM.net]
>>86
Pythonの違いじゃなくてWin32 console APIの違いの可能性もあるね
Console切り離すのは結構version違いが激しい
Powershellでも厄介
batをVBで書き直すことを勧める

93 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 14:43:19.89 ID:V+Ekt21U0.net]
なぜVBw

94 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 14:54:41.80 ID:ysK9uB2VM.net]
>>93
Console切り離すのが簡単なスクリプト言語他にあるかな?

95 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 14:55:39.66 ID:ysK9uB2VM.net]
WSHでJavascriptなら簡単なんかな?

96 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 15:07:12.92 ID:OFtNpZ320.net]
問題はbatファイルの呼び出しだったようで、
実行ファイルを直接呼び出すように変更したらwin7でも動いた

97 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 15:46:55.28 ID:bNc9xgI00.net]
ぱい

98 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 18:23:50.32 ID:NQkiHUfv0.net]
ちゃんとした質問してほしい

99 名前:デフォルトの名無しさん mailto:sage [2021/11/19(金) 22:02:42.25 ID:R6tUvqDP0.net]


100 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 06:35:11.10 ID:MZWWAxGE0.net]
cp932で表せないファイル名のリストを作る

cp932にencodeしてみてエラーになったらそれを出力する、という方式なんだけど、
printするとエラーになってしまうので、リダイレクトでファイルにできない
仕方ないので、encoding="utf-8"でopenしてwriteしてるけど、
改行とか付けないといけないし、printで済ませたい

printしてもエラーにならない方法とか無いのかな
python2ならそのまま行けた



101 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 07:45:20.38 ID:Lukvfxqi0.net]
>>100
https://docs.python.org/ja/3/library/functions.html#print

>>> f = open(path, 'w', encoding='utf-8')
>>> print(*objects, file=f)

102 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 08:24:40.92 ID:MZWWAxGE0.net]
cp932のエンコードなんだからcp932でないものは通さない
という例外を認めない姿勢は厳密ではあるけど融通がきかないよな

漢字のファイル名も使えるのに、たまに'〜'とか変なスペースとかで
処理できないツールは大抵そういう厳密さで引っかかってる
ノーチェックで通してれば処理も減るしツールも使える側に倒れるのに

103 名前:デフォルトの名無しさん [2021/11/20(土) 11:19:01.66 ID:/kqPbqrTM.net]
なんとなく筋違いのことを言っているのだけはわかった。

104 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 12:11:56.36 ID:MZWWAxGE0.net]
既にファイルは開いてるんだから、そこにwriteするかprintでfile=を指定するかは、
処理上何も変わらない

知りたいのは、リダイレクトしてエラーにならない方法
os側は何が来ようがそのままファイルにリダイレクトするので、
標準出力に出す時点でのチェックを止めればいい

105 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 13:10:25.59 ID:c6rYoMps0.net]
python2でいけて、python3でエラーっていうのがわからない
CP932のコンソールの問題なら普通前者で起きると思うんだけど

106 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 13:20:06.78 ID:c6rYoMps0.net]
あと、openするときにバイナリ書き込みを指定すれば済みそうだけどな
改行コードもそのままにできるし

107 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 20:33:41.39 ID:MS7q4miD0.net]
https://www.pythonic-exam.com/archives/news/python_open_document

108 名前:デフォルトの名無しさん mailto:sage [2021/11/20(土) 20:33:57.35 ID:MS7q4miD0.net]
いつ公開するのよ?

109 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 12:48:52.72 ID:4kBJkMan0.net]
https://qiita.com/righteous/items/c5f6fbf84c98c5a17043
これ全部できる?

110 名前:デフォルトの名無しさん mailto:sage [2021/11/21(日) 13:09:44.82 ID:DbnHICgp0.net]
とどらんみたいなサイトに興味があるんですが、統計学とデータ分析どちらの知識が必要でしょうか?。



111 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 04:46:02.24 ID:X0+jYONh0.net]
a = ['a', 'b', 'c']
if 'x' not in a: print('hello') #1
if not 'x' in a: print('hello') #2

#1はaに'x'が含まれていない
#2は(aに'x'がふくまれている)の否定

この二つは全く同じものだと考えて良いのでしょうか?

112 名前:デフォルトの名無しさん [2021/11/22(月) 07:57:31.23 ID:sf/6XMlW0.net]
同じ

113 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 08:01:58.64 ID:HMeOIS1cM.net]
>>111
同じだけど #1 で書けって言ってるみたい
https://kazusa-pg.com/python-not-in/

114 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 09:30:17.60 ID:7Z6oy9Mm0.net]
普通に優先順位が不安になるよな

115 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 10:10:59.14 ID:XQq90Aj30.net]
CIに必ずいれるしflake8なしでコード書くのは考えられん

116 名前:デフォルトの名無しさん [2021/11/22(月) 12:23:27.94 ID:vmkVXbGEF.net]
if a is not None:
if a not is None:
if not a is None:
Python は書き方が一つしかない()っていったのは誰?

117 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 12:28:55.98 ID:8fUDDfEEd.net]
英語文法に強いと#1しかあり得んとなるが
否定文でこけた経験があると、どうしても頭に否定書きたくなってしまう
なんなら否定自体書きたくなくなる

118 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 12:42:04.92 ID:7Z6oy9Mm0.net]
そこでunlessですよ

119 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 13:10:59.47 ID:z3oVlEgz6.net]
if a:

120 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 13:58:34.46 ID:WOttMYR/0.net]
変数hogeに値がある場合はfugaにhoge(の値)を代入したい場合
if文や条件式を使わずに表現する方法ってある?
# python
hoge = "piyo"
fuga = hoge if hoge else ""

bashの変数展開みたいな書式ないよね
# bash
hoge="piyo"
fuga=${hoge:-""}



121 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 14:08:40.76 ID:7Z6oy9Mm0.net]
orは?

122 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 15:03:17.50 ID:8fUDDfEEd.net]
それこそwysiwygの精神に反するってすぐ分かりそうなもんだけどな

123 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 15:12:56.63 ID:PHd8OvUid.net]
Python初心者です
https://teratail.com/questions/251676
このページを参考にBytesIOを使おうと考えています

a = np.load(BytesIO(binary))
このように使った場合、BytesIOは不要と判断されて開放されるのでしょうか?

https://docs.python.org/ja/3/library/io.html
The buffer is discarded when the close() method is called.
とのことで、
stream = BytesIO(binary)
a = np.load(stream)
stream.close()
としたほうが良いのでしょうか?

124 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 15:24:31.25 ID:XQq90Aj30.net]
>>123
IOBaseの説明の対比でそう書いてるだけで
GCが働くからclose()は必須ではない

125 名前:デフォルトの名無しさん [2021/11/22(月) 15:27:18.74 ID:sf/6XMlW0.net]
with BytesIO(binary) as stream:
__a = np.load(stream)

withブロックを抜けるとcloseされるから安全

126 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 16:09:57.46 ID:7Z6oy9Mm0.net]
withってなんか雰囲気で動いてる気がする

127 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 16:25:58.98 ID:v4k6kYue0.net]
>>121
なるほど、or はこんな動作もするんだな
ありがとう

128 名前:デフォルトの名無しさん [2021/11/22(月) 16:37:47.59 ID:2MDgP0Vy0.net]
>>120
よくわからんけど
その例だったらfuga=f’{hoge}’でもfuga=hogeでも同じじゃないの?

129 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 16:54:42.37 ID:v4k6kYue0.net]
>>128
変数 hoge に "piyo" が入っているのは一例で、
例えば、hoge がもし None だった場合に ""(空文字)に変換されるので、
そのまま文字列(の一部)として出力したいときに使えるようになる

130 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 16:58:50.36 ID:2MDgP0Vy0.net]
あー、hogeが存在してなくてもエラーが出ないのか



131 名前:デフォルトの名無しさん [2021/11/22(月) 19:05:57.15 ID:lkDGIXBn0.net]
まあ、自分しか見ないソースならいいけど見ずらくなりそだな、その書き方。

132 名前:デフォルトの名無しさん [2021/11/22(月) 19:36:29.24 ID:5E3QcxihM.net]
undefinedに対応できない、Falsyのうっかりとかあるから、褒められる書き方ではないわな。

133 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 20:16:33.77 ID:zjNStOpV0.net]
>>124
>>125
ありがとうございます、勉強になりました

134 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 22:48:58.52 ID:XQq90Aj30.net]
fuga = hoge if hoge else ‘’
fuga = hoge or ‘’
どっちも’’とか特定の偽しか来ない前提だけど冗長でない分後者を推す
公式にも前者のコード例はたぶんないし

135 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 22:51:07.19 ID:XQq90Aj30.net]
‘’ or ‘’は意味不明やわ。日本語不自由ですまん

136 名前:デフォルトの名無しさん mailto:sage [2021/11/22(月) 23:21:46.71 ID:7Z6oy9Mm0.net]
perlの // みたいなのは無いのかな
a // b はaがNoneでなければaを、Noneならばbを返す

137 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 00:17:52.93 ID:Ln8GWMq+0.net]
>>120
Ruby では、and/or の遅延初期化をよく使う

p a = a || 1 #=> aが未定義のnil で偽なので、右辺が評価されて1

a = 2
p a = a || 1 #=> aが真なので、短絡評価で2。右辺は評価されない

p b = b && 1 #=> bが未定義のnilで偽なので、短絡評価でnil。右辺は評価されない

b = 2
p b = b && 1 #=> bが真なので、右辺が評価されて1

138 名前:デフォルトの名無しさん [2021/11/23(火) 00:44:36.44 ID:xEN2JBOU0.net]
>>136
それ
x = a if a else b
じゃね?
なんか避けたいって言ってるやつ

139 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 01:00:51.66 ID:h5ckzt1c0.net]
Noneかどうかで判定したいってこと
if a
だと0でも空文字列でも偽だから曖昧になりがち
if a is not None
でぜんぜん困らんけどね

140 名前:デフォルトの名無しさん [2021/11/23(火) 02:02:18.19 ID:4MVUDnE90.net]
ヌル合体とか欲しいよねPythonにも、



141 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 02:33:06.96 ID:bb25eqH30.net]
PEP505は全く進展ないね
3.10には入ると思ってたけど

142 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 10:09:13.49 ID:OzyPSNUz0.net]
値が入っていることを想定しているけれど、想定外にNoneだった時の為のガード
みたいな使い方をしたいんだろうけど、
そういうのは明示的にifとかtryで書いた方がいいよな

143 名前:デフォルトの名無しさん [2021/11/23(火) 10:41:32.64 ID:iYWDXWdAM.net]
むしろ気をつけないといけないのは、想定外にTrueになってしまうケースだ。
たとえば、昔のDjangoのUserモデルのis_authenticatedは、プロパティじゃなくてメソッドだった。

144 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 13:28:59.61 ID:Cd+od5Ii0.net]
Noneも曖昧だからね
単なる未定義なのか空集合なのかエラーなのかNoneそのものなのか
ディクショナリー検索等でNoneが帰って来る仕様だがどう扱うか

145 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 13:32:03.52 ID:KM4P0q2w0.net]
結局は>>143の言うとおりなんよ…

我々はすでに知ってるんよ、中身がNullかどうかに注目した結果
普通にコード書くだけでトライキャッチスパムになってしまうJavaとかいう言語を…

146 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 13:40:48.37 ID:OzyPSNUz0.net]
エラーの情報をちゃんと持ってて、ずっと上流の呼び元までそれが伝わる言語あったな
なんだっけ

関数は引数に従って値を返します
という前提で普通の言語は設計されているけど、
関数は引数に従って値を返します。返さないこともあります
でないといけなかった

147 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 13:43:00.09 ID:x4PI0/Sq.net]
fastAPIのルーティングでデコレータ使わずに
app.add_api_route("/hoge", hoge, methods=["GET","POST"])
な感じで分離してやってみたけど、各リクエストメソッドでバリデーションが異なる時に躓いた

このまま共通のhogeだと互いのバリデーションclassが422 Unprocessable Entityを引き起こしてしまうので
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
みたいにして新たにhogePost追加するという書き方に。

かと言ってデコレータ使うと
@app.get("/hoge")
def hoge():
@app.post("/hoge")
def hoge():
みたいにせっかくのルーティングの分離管理が二度手間かつ無駄に
というジレンマ

デコレータ使わない場合
>新たにhogePost追加する
というのが無難なのだろうか・・

148 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 15:02:56.49 ID:Vfqk4Xs70.net]
validator 内で GET/POST 区別したら?

149 名前:デフォルトの名無しさん [2021/11/23(火) 15:18:14.11 ID:nqaaqo53M.net]
app.add_api_route("/hoge", hoge, methods=["GET"])
app.add_api_route("/hoge", hogePost, methods=["POST"])
これでいいんじゃね。関数として分けておけば、
validatorもデコレータ(ファクトリ)にしてみたり、いろいろ柔軟にできる。
@validate('GET')
def hoge()
@validate('POST')
def hogePost()

150 名前:デフォルトの名無しさん mailto:sage [2021/11/23(火) 16:09:24.71 ID:x4PI0/Sq.net]
>>148
今はpydanticなvalidor使ってるけどクラス変数の評価前に区別する方法があったりするのだろうか
>>149
うんとりあえずはそんな感じでリクエストメソッド分だけ用意することにした

d



151 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 00:31:29.22 ID:9nGxCHAd0.net]
★★★★★
会話をすればポイントが増えてアイテムを買える。
次世代の大型掲示板、メルプラネット。
https://merpla.net/boards/

152 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 04:45:08.04 ID:ZcuSX9hJ0.net]
>>144
かと言って最初からOption型やmaybeモナドでライブラリ構成されてもウザいしね

153 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 15:08:35.99 ID:lCK/bdd80.net]
名前と数値がセットになったような内容を扱う時、
セットにしただけのclass作る?

154 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 18:01:26.90 .net]
キーと値がセットになった各値をどう扱うかによって
インスタンス化するか、辞書にとどめておくか、ライブラリ使うか
変えるかなぁ

155 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 21:37:03.97 ID:YZcLPgmZ0.net]
>>153
自分だけしか使わないならダラダラ書くけど
引き継ぐ可能性がある場合はクラスにしといた方がメンテしやすいんじゃないかと思ってる

156 名前:デフォルトの名無しさん mailto:sage [2021/11/24(水) 22:14:50.32 ID:lCK/bdd80.net]
リファクタリングの本読んでて、オブジェクト指向の初心者は
小さなオブジェクトを使うのを嫌がる的なことが書いてあって、そんなもんかなと

157 名前:デフォルトの名無しさん [2021/11/24(水) 22:49:34.83 ID:Ph9UZvc+0.net]
通常そういうデータってどっかのクラスのメンバ変数で辞書かnamed tupleじゃねえか?
keys:names のみのクラスってどういう状況であり得る?

158 名前:デフォルトの名無しさん [2021/11/25(木) 00:14:54.89 ID:Mg+a9DvFa.net]
集計目的ならdefaultdict

159 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 06:32:01.73 ID:kAK1JHHz0.net]
>>157
通常と言われてもなあ

160 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 07:36:38.15 ID:1AK1NI0N0.net]
ただの名前であってキーとは言ってない
重複のない保証はない
name[i]とval[i]で管理したいところ
valでソートをかける
classにせずとも余裕でやれる
やれるけど?



161 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 07:55:54.60 ID:wc50HyKuM.net]
ただの名前をキーと言う奴はもれなくアホだと思う

162 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 09:04:00.52 ID:kAK1JHHz0.net]
>>160
じゃあその組を管理するRDB風のクラスがいいんじゃないの?

#セットという言葉の使い方が気になる

163 名前:デフォルトの名無しさん mailto:sage [2021/11/25(木) 09:23:53.44 ID:1AK1NI0N0.net]
いいんじゃない、の加減なんだよな

しなければならない / 是非するべき / した方がいい / しなくてもいい / しない方がいい / しない
そのへんの温度感が経験で違うのだろう

164 名前:デフォルトの名無しさん mailto:sage [2021/11/26(金) 20:45:55.13 ID:wc7annti0.net]
urlopen()をwithで取得してwithを抜けると何が起きるの?

165 名前:デフォルトの名無しさん mailto:sage [2021/11/26(金) 20:48:58.06 ID:s3jo07500.net]
シメられる

166 名前:デフォルトの名無しさん mailto:sage [2021/11/26(金) 22:16:46.96 ID:nRTAMUqI0.net]
https://docs.python.org/ja/3/library/urllib.request.html#urllib.request.urlopen
> HTTP および HTTPS URL の場合、この関数は、わずかに修正された http.client.HTTPResponse オブジェクトを返します。

class HTTPResponse(io.BufferedIOBase)
で__exit__()はオーバーライドされてないから受信データにアクセスできなくなるだけ。
意図してる通りだろうけど
> より高水準のHTTPクライアントインターフェースとして Requestsパッケージ がお奨めです。
だし、説明が追加されることはなさそう。

167 名前:デフォルトの名無しさん mailto:sage [2021/11/26(金) 22:30:51.87 ID:wc7annti0.net]
何かのリソースが自動で開放されるとかではないのか

168 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 18:48:32.12 ID:Ce5RxaUa0.net]
pygameってみんな使ってないのか?
せっかく二冊ほど読み終えたのに動かそうと思ったら
3.8じゃうごかないとか言われて途方に暮れてるんだが・・・

すなおにゲームはunityつかえってことか・・・・

169 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 19:23:42.37 ID:QJDif1Cg0.net]


170 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 19:29:31.81 ID:IgXLbzKoM.net]
>>168
たくさんあるから
 Python ゲームエンジン
で検索して目的に適してるのを選べ



171 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 19:45:13.67 ID:JJsR/G8Z0.net]
pygameでmidiが取り扱えるんだよな

ハノン弾いてリアルタイムで正確さを表示したら面白いと思って
ずっと前に作りかけて放り出してある
今ならすぐ作れそう

172 名前:デフォルトの名無しさん mailto:sage [2021/11/27(土) 19:54:52.11 ID:i0YnXTZB0.net]
pygame、3.8.10で動くけど?






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

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

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