!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オフィシャルサイト http://www.python.org/
◇まとめwiki ttp://python.rdy.jp/
●関連スレ● 自称初心者は↓へ
【まず1嫁】くだすれPython(超初心者用) その53
https://mevius.5ch.net/test/read.cgi/tech/1615846784/
〇前スレ〇 Pythonのお勉強 Part64
https://mevius.5ch.net/test/read.cgi/tech/1600035173/
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
### END of TEMPLATE ###
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
探検
Pythonのお勉強 Part65
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん (ワッチョイ eb01-+D+D)
2021/05/23(日) 14:51:52.02ID:NSupjEI/0893デフォルトの名無しさん (ワッチョイ 0b68-rbIv)
2021/11/04(木) 19:54:06.86ID:1oNQtxfO0894デフォルトの名無しさん (ワッチョイ 93ad-w6q0)
2021/11/04(木) 22:17:54.26ID:fsdfBLaX0 >>892
結果は評価関数によって決まる
結果は評価関数によって決まる
895デフォルトの名無しさん (ブーイモ MMa6-wBDi)
2021/11/05(金) 07:59:15.59ID:Np2Q++y9M >>886
SOM最凶だな
SOM最凶だな
896デフォルトの名無しさん (ワッチョイ 5e10-F6GX)
2021/11/05(金) 08:56:27.22ID:jj0vDHHe0 >>892
その結果を判断できる人間が居ないんですが
その結果を判断できる人間が居ないんですが
897デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/05(金) 09:25:22.05ID:Zu6paNwN0 pandasでインデックスが重複しているデータフレームがある
value = df.at[index_name, 'aaa']
とすると、スカラーが帰ってきたりシリーズが返ってきたりする
そのこと自体はいいとして、どちらが返ってもいいようにループを書くにはどうすれば
value = df.at[index_name, 'aaa']
とすると、スカラーが帰ってきたりシリーズが返ってきたりする
そのこと自体はいいとして、どちらが返ってもいいようにループを書くにはどうすれば
898デフォルトの名無しさん (ワッチョイ 5e7b-2qSv)
2021/11/05(金) 09:47:41.24ID:Rm9U0qMG0 返ってきた内容で分岐処理したらいいんじゃないの?
899デフォルトの名無しさん (ワッチョイ b236-awrp)
2021/11/05(金) 10:02:53.50ID:ZmTTUUh30 pandasなんてあるんだね、初めて知った。
チラッとみたけど、dictとlistの組み合わせでも出来そうな気が、きっと処理が早いんだよね。
仕事で使ってるの?趣味?
チラッとみたけど、dictとlistの組み合わせでも出来そうな気が、きっと処理が早いんだよね。
仕事で使ってるの?趣味?
900デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/05(金) 10:23:05.86ID:Zu6paNwN0 やっぱり分岐するしか無いよな
書き方を工夫してfor一発でいけないかと思ったけど
書き方を工夫してfor一発でいけないかと思ったけど
901デフォルトの名無しさん (ワッチョイ 5e7b-2qSv)
2021/11/05(金) 10:36:10.80ID:Rm9U0qMG0 とりあえずvalues.tolist()つけて処理したら?
902デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/05(金) 10:52:07.75ID:Zu6paNwN0 tolist()でリストにして、スカラーの時は要素1個のリストにして、
でなんとかなったけど、インデックスの重複が他の箇所でも問題に
やっぱり重複は解消する方向で
重複行は1行に集約させて、違いのある列は判ってるので、そこだけリストにしたい
そんな都合のいい機能があるかなと思ったらgroupby()でいけそうなので調べ中
でなんとかなったけど、インデックスの重複が他の箇所でも問題に
やっぱり重複は解消する方向で
重複行は1行に集約させて、違いのある列は判ってるので、そこだけリストにしたい
そんな都合のいい機能があるかなと思ったらgroupby()でいけそうなので調べ中
903デフォルトの名無しさん (ワッチョイ 8101-XAe6)
2021/11/05(金) 11:09:17.94ID:WVIgdnkY0 複数開いたブラウザに対して操作するプログラムを作っていて、
グローバル変数が大量になってしまったので、それがベストなのかアドバイスを頂きたくお願いします。
処理の流れは、一番最初に4つのウィンドウハンドルを取得して変数に格納(hnd1~4)、それぞれにURLなどを設定(これも4個)。
それらの変数使ってブラウザ操作しているのですが、変数が多くそれらが全てグローバル変数になっています。
グローバル変数にしている理由は、ブラウザ操作の関数で書き換えが出来ないのでグローバルにしています。
ボタン位置や読み込む文字が複数になればなるほど、倍々ゲームでグローバル変数が増えてしまうのですが、
問題はないでしょうか。
色々なサイトを見る限りは、グローバル変数は最低限にするというのですが、
どうしても関数に渡すにはそうなってしまうため教えていただければと思います
グローバル変数が大量になってしまったので、それがベストなのかアドバイスを頂きたくお願いします。
処理の流れは、一番最初に4つのウィンドウハンドルを取得して変数に格納(hnd1~4)、それぞれにURLなどを設定(これも4個)。
それらの変数使ってブラウザ操作しているのですが、変数が多くそれらが全てグローバル変数になっています。
グローバル変数にしている理由は、ブラウザ操作の関数で書き換えが出来ないのでグローバルにしています。
ボタン位置や読み込む文字が複数になればなるほど、倍々ゲームでグローバル変数が増えてしまうのですが、
問題はないでしょうか。
色々なサイトを見る限りは、グローバル変数は最低限にするというのですが、
どうしても関数に渡すにはそうなってしまうため教えていただければと思います
904デフォルトの名無しさん (ワッチョイ d201-CJ6T)
2021/11/05(金) 11:29:57.49ID:WAcm7u050 >>903
問題ありまくりだけど個人のプログラムなら好きにすればいいと思う
ウィンドウを4つから5つとか6つとかに増やす場合があると仮定して
その際に設定ファイルの変更のみでプログラムの変更は必要ないように作るのが一般的
問題ありまくりだけど個人のプログラムなら好きにすればいいと思う
ウィンドウを4つから5つとか6つとかに増やす場合があると仮定して
その際に設定ファイルの変更のみでプログラムの変更は必要ないように作るのが一般的
905デフォルトの名無しさん (ワッチョイ b236-awrp)
2021/11/05(金) 12:45:16.05ID:ZmTTUUh30 >>903
クラスがいいんじゃねえの。
class Browser ():
def __ init __ ( self ) :
hnd = None
url = ""
buttonPosi = None
def setUrl(self,url):
self.url = url
def setHnd(self,hnd):
self.hndl = hnd
if __name__ == '__main__':
brow1 = Browser()
brow2 = Browser()
brow3 = Browser()
brow4 = Browser()
brow1 .setUrl("http://........")
brow2 .setUrl("http://........")
brow3 .setUrl("http://........")
brow4 .setUrl("http://........")
超いいかんげんで書いたけど、こんな感じは?
クラスがいいんじゃねえの。
class Browser ():
def __ init __ ( self ) :
hnd = None
url = ""
buttonPosi = None
def setUrl(self,url):
self.url = url
def setHnd(self,hnd):
self.hndl = hnd
if __name__ == '__main__':
brow1 = Browser()
brow2 = Browser()
brow3 = Browser()
brow4 = Browser()
brow1 .setUrl("http://........")
brow2 .setUrl("http://........")
brow3 .setUrl("http://........")
brow4 .setUrl("http://........")
超いいかんげんで書いたけど、こんな感じは?
906デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/05(金) 15:43:42.43ID:Zu6paNwN0 結局、
df.gropby(['index_col']).agg({'col1':list, 'col2':'last', 'col3':'last'...
という感じで求めるものは得られたんだけど、
col2以降を全部列挙しないといけないのがいかにも見苦しい
リストにしたいcol1だけ明示して、残りは全部'last' みたいに書けない?
df.gropby(['index_col']).agg({'col1':list, 'col2':'last', 'col3':'last'...
という感じで求めるものは得られたんだけど、
col2以降を全部列挙しないといけないのがいかにも見苦しい
リストにしたいcol1だけ明示して、残りは全部'last' みたいに書けない?
907デフォルトの名無しさん (ワッチョイ 5e7b-2qSv)
2021/11/05(金) 15:56:57.72ID:Rm9U0qMG0 >>906
さんぷるコードうp
さんぷるコードうp
908デフォルトの名無しさん (ワッチョイ 8101-XAe6)
2021/11/05(金) 19:15:28.69ID:WVIgdnkY0909デフォルトの名無しさん (ワッチョイ b236-awrp)
2021/11/05(金) 19:33:10.03ID:ZmTTUUh30 >>908
brow1を渡せばね。
使った事がないなら、まずはクラスを勉強した方がいいかもね。
外部変数でやるなら
brow1 = []
brow2 = []
brow3 = []
brow4 = []
ってリストを用して、
brow1.append(url)
brow2.append(hndl)
brow3.append(buttonNo)
dictでもいいけど、こっちのが見やすいかな?
brow1['url'] = url
brow1['hndl'] = hndl
brow1['buttonNo'] = buttonNo
まあ、良いかきかたとは言えないけど取り敢えずこれで作ってクラスを勉強するかだね。
brow1を渡せばね。
使った事がないなら、まずはクラスを勉強した方がいいかもね。
外部変数でやるなら
brow1 = []
brow2 = []
brow3 = []
brow4 = []
ってリストを用して、
brow1.append(url)
brow2.append(hndl)
brow3.append(buttonNo)
dictでもいいけど、こっちのが見やすいかな?
brow1['url'] = url
brow1['hndl'] = hndl
brow1['buttonNo'] = buttonNo
まあ、良いかきかたとは言えないけど取り敢えずこれで作ってクラスを勉強するかだね。
910デフォルトの名無しさん (ワッチョイ 123f-B9Vr)
2021/11/05(金) 20:06:36.49ID:s+xNbh4M0 ボリュームあるから進めつつでもいいけど
初学者で公式チュートリアルやらないのは結局遠回りするとおもう。
初学者で公式チュートリアルやらないのは結局遠回りするとおもう。
911デフォルトの名無しさん (ワッチョイ d2ad-7Rex)
2021/11/05(金) 20:53:50.70ID:9nGEQz1j0 >>906
別に美しくはないがカラム数固定的ではない
import itertools
r = dict(zip(['B', 'C', 'D', 'E'],itertools.cycle([1])))
print({'A': 0, **r})
{'A': 0, 'B': 1, 'C': 1, 'D': 1, 'E': 1}
別に美しくはないがカラム数固定的ではない
import itertools
r = dict(zip(['B', 'C', 'D', 'E'],itertools.cycle([1])))
print({'A': 0, **r})
{'A': 0, 'B': 1, 'C': 1, 'D': 1, 'E': 1}
912デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/05(金) 20:59:02.07ID:Zu6paNwN0 df.groupby(['index_col']).agg(list)
って書くと、全部のカラムが対象になるので、何かありそうな気がするんだけど
って書くと、全部のカラムが対象になるので、何かありそうな気がするんだけど
913デフォルトの名無しさん (ワッチョイ a9da-Y8z3)
2021/11/05(金) 21:04:09.45ID:eZOYib7p0 os.sync()に相当するものをwindowsで実装したいのですが代替のAPIなどあるでしょうか?
調べた感じimportlib.invalidate_cachesが近しいのかなと思ったのですが確証がなく。。。
調べた感じimportlib.invalidate_cachesが近しいのかなと思ったのですが確証がなく。。。
914デフォルトの名無しさん (ワッチョイ d2ad-7Rex)
2021/11/05(金) 21:11:43.08ID:9nGEQz1j0915デフォルトの名無しさん (ワッチョイ a9da-Y8z3)
2021/11/06(土) 00:24:53.43ID:d8pEOxlp0 >>914
ありがとうございます。
ありがとうございます。
916デフォルトの名無しさん (アウアウウー Sacd-bQ3l)
2021/11/06(土) 11:20:50.02ID:b1XdA94qa .pyd ファイルを C から呼ぶにはどうするのが良いですか?
917デフォルトの名無しさん (ワッチョイ a901-s7lo)
2021/11/07(日) 07:28:50.84ID:+p+jfAUD0918デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/07(日) 08:24:06.58ID:IfBJzlxd0 部分的に低級言語で高速化するのは自然だけど、
なぜ部分的に低速化する
なぜ部分的に低速化する
919デフォルトの名無しさん (ワッチョイ 9201-+aG2)
2021/11/07(日) 08:37:29.57ID:zFG7xLKK0 使いたいライブラリがPythonで書かれてるとか
まあいずれにせよこんな質問してる時点でやめとけという結論しか出ないけど
まあいずれにせよこんな質問してる時点でやめとけという結論しか出ないけど
920デフォルトの名無しさん (ワッチョイ 515f-lXUs)
2021/11/07(日) 10:59:29.18ID:L1cSyFxb0 openしてreadしてcloseすりゃ良いんじゃん?
921デフォルトの名無しさん (アウウィフ FFcd-bQ3l)
2021/11/07(日) 13:04:15.99ID:XJB+ymj6F 出来ました
ほんとうにありがとうございました
ほんとうにありがとうございました
922デフォルトの名無しさん (ワッチョイ 5eb0-EgSe)
2021/11/07(日) 23:09:55.78ID:zjXC+7YU0 聞いたのなら、どうやって解決したか書くといいよ
923デフォルトの名無しさん (ワッチョイ d2ad-Iblw)
2021/11/08(月) 08:10:55.29ID:7h7MJ4sx0 >>916
libpython
libpython
924デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/08(月) 19:21:59.25ID:yeuw0t2w0 関数の定義を呼び出しより後に書けない問題は、main()を定義することで解決できる
925デフォルトの名無しさん (ワッチョイ 856e-vonH)
2021/11/08(月) 19:59:33.23ID:fs6N9WFT0 NLPLOTで共起ネットワークを描画したいと思い勉強中です。
サンプルコード通りに試してみているのですが、下記の★の行で
ValueError: n_communities must be between 1 and 0. Got
が出てしまいます。
npt = nlplot.NLPlot(df, target_col='Column2')
stopwords = npt.get_stopword(top_n=0, min_freq=0)
★npt.build_graph(stopwords=stopwords, min_edge_frequency=100)
display(
npt.node_df.head(), npt.node_df.shape,
npt.edge_df.head(), npt.edge_df.shape
)
npt.co_network(
title='Co-occurrence network',
)
原因を調べようとしているのですが、うまくいかず困っています。
書き方が間違えているのでしょうか?
サンプルコード通りに試してみているのですが、下記の★の行で
ValueError: n_communities must be between 1 and 0. Got
が出てしまいます。
npt = nlplot.NLPlot(df, target_col='Column2')
stopwords = npt.get_stopword(top_n=0, min_freq=0)
★npt.build_graph(stopwords=stopwords, min_edge_frequency=100)
display(
npt.node_df.head(), npt.node_df.shape,
npt.edge_df.head(), npt.edge_df.shape
)
npt.co_network(
title='Co-occurrence network',
)
原因を調べようとしているのですが、うまくいかず困っています。
書き方が間違えているのでしょうか?
926デフォルトの名無しさん (ワッチョイ 856e-vonH)
2021/11/08(月) 20:00:25.18ID:fs6N9WFT0 すみません、sage忘れました
927デフォルトの名無しさん (JP 0H32-Jkql)
2021/11/08(月) 23:16:16.58ID:F/UmZqpfH exeして実行するとサイドバイサイド構成がっていうエラーが出るんですが、ランタイムのインストール以外の回避方法ありますか?
928デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/09(火) 13:31:05.79ID:LitRxmJN0 UnboundLocalErrorが出た時
グローバル変数を参照したいのに関数内に代入があるせいでローカル変数扱いに
なってしまう場合は、global と書いてやることで回避できる
そうではなくて、変数が呼び出し元の関数のスコープにある時に、
とにかくローカル変数ではないことを伝える書き方ってある?
グローバル変数を参照したいのに関数内に代入があるせいでローカル変数扱いに
なってしまう場合は、global と書いてやることで回避できる
そうではなくて、変数が呼び出し元の関数のスコープにある時に、
とにかくローカル変数ではないことを伝える書き方ってある?
929デフォルトの名無しさん (オッペケ Sr79-F6GX)
2021/11/09(火) 13:54:17.13ID:xG+5Fvfxr nonlocal
930デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/09(火) 14:00:52.00ID:LitRxmJN0 そのまんまのがあったんだな
でも、呼び出し元の関数のローカル変数を参照することなんかできなかった
ローカル変数だから
じゃあいろんな関数から共通で使うようなデータはグローバルで持つしか仕方ないのかな
でも、呼び出し元の関数のローカル変数を参照することなんかできなかった
ローカル変数だから
じゃあいろんな関数から共通で使うようなデータはグローバルで持つしか仕方ないのかな
931デフォルトの名無しさん (ブーイモ MM96-Iblw)
2021/11/09(火) 14:12:56.14ID:ZWbVd3f2M932デフォルトの名無しさん (ワッチョイ b12c-cRVk)
2021/11/09(火) 14:15:42.21ID:gY1b2lRY0 殆どの場合においてglobalやnonlocalはモンキーパッチだと思うんよね
明示的に渡すか大域変数にするか(っていうかクラス化しよう)
明示的に渡すか大域変数にするか(っていうかクラス化しよう)
933デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/09(火) 14:24:14.81ID:LitRxmJN0 forとかwhileの中は別スコープだと思いこんでたけど、そんなことはなかった
934デフォルトの名無しさん (ブーイモ MMd5-8Kye)
2021/11/09(火) 14:44:38.98ID:jSBInGWeM パ、パ、パイソンのクラス変数まわりのデザインセンスがいいだと!?!?
おれの知ってるPythonとは全く別物のようだな
おれの知ってるPythonとは全く別物のようだな
935デフォルトの名無しさん (ワッチョイ 655f-bQ3l)
2021/11/09(火) 15:01:15.77ID:GN60fzOT0 ぼくがしってるさいきょうのpython
def a(x):
x = 3
def b(x):
ctypes.cast(x, ctypes.POINTER(ctypes.c_long)).contents.value = 4
def c(x):
x.contents.value = 5
def test_ctypes_byref():
y = 1
a(y)
print(y)
z = ctypes.c_long(1)
b(ctypes.byref(z))
print(z)
w = ctypes.c_long(1)
c(ctypes.pointer(w))
print(w)
def a(x):
x = 3
def b(x):
ctypes.cast(x, ctypes.POINTER(ctypes.c_long)).contents.value = 4
def c(x):
x.contents.value = 5
def test_ctypes_byref():
y = 1
a(y)
print(y)
z = ctypes.c_long(1)
b(ctypes.byref(z))
print(z)
w = ctypes.c_long(1)
c(ctypes.pointer(w))
print(w)
936デフォルトの名無しさん (ワッチョイ f57c-B9Vr)
2021/11/09(火) 15:22:19.02ID:WraEKl970 一読でreject
937デフォルトの名無しさん (ワッチョイ 1997-MEiT)
2021/11/10(水) 00:39:05.34ID:/+ks5EJX0 Pythonの変数スコープまわりは、一番Pythonでダメなところじゃないか?
Python4では、もっとモダンになってほしい。オプションでもいいから。
readするだけなら何も書かずに読めるけどwriteするならglobalとかnonlocalつけなきゃいけないとか、リファクタリングするときに地獄だよ。if文で分岐もできたりするし、
システムハンガリアン導入して名前で分けないとないとバグだらけになるでしょ。
Python4では、もっとモダンになってほしい。オプションでもいいから。
readするだけなら何も書かずに読めるけどwriteするならglobalとかnonlocalつけなきゃいけないとか、リファクタリングするときに地獄だよ。if文で分岐もできたりするし、
システムハンガリアン導入して名前で分けないとないとバグだらけになるでしょ。
938デフォルトの名無しさん (ワッチョイ 5eb0-EgSe)
2021/11/10(水) 01:38:09.98ID:GQMg9v0V0 まぁ開発レベルではグローバル変数使わないように徹底するしかない
939デフォルトの名無しさん (ドコグロ MM46-+aG2)
2021/11/10(水) 05:37:44.75ID:ffCMytEfM 今どき必要もないのにグローバル変数使いまくる老害なんて>>937ぐらいだろw
940デフォルトの名無しさん (アウアウウー Sacd-P7mx)
2021/11/10(水) 05:42:13.21ID:lUoW0l36a classで書けば良いだけと思う。
941デフォルトの名無しさん (ワッチョイ 9201-H2rd)
2021/11/10(水) 06:33:16.30ID:iRDf1Auh0 >>939
んだとテメェ
んだとテメェ
942デフォルトの名無しさん (ワッチョイ 9e68-+Epa)
2021/11/10(水) 07:32:40.96ID:/U16p14T0 割と立派な規模のプログラム書いてそうな物言いの人でもクラス化していないのだろうか
943デフォルトの名無しさん (ワッチョイ debb-MPKP)
2021/11/10(水) 07:34:44.07ID:4zi+25gd0944デフォルトの名無しさん (ワッチョイ 5e63-P2dv)
2021/11/10(水) 08:08:00.02ID:ARHiGKfb0 境界性パーソナリティ障害っすか
945デフォルトの名無しさん (ブーイモ MMd5-S56S)
2021/11/10(水) 08:56:21.34ID:sWJ168sZM globalなくすとwriteするときにローカル変数と区別できなくなるからなくせない。となるとreadもwriteもglobal強制すればいいの?
グローバル変数を頻繁に書き換えるなんてすでにそうとう読みにくいコードになってそうだから、そっちのほうをどうにかしたほうがよいのでは
グローバル変数を頻繁に書き換えるなんてすでにそうとう読みにくいコードになってそうだから、そっちのほうをどうにかしたほうがよいのでは
946デフォルトの名無しさん (ワッチョイ 515f-yI1A)
2021/11/10(水) 09:23:36.91ID:PQrIqHUM0 >>937
>readするだけなら何も書かずに読めるけどwriteするならglobalとかnonlocalつけなきゃいけないとか、リファクタリングするときに地獄だよ。if文で分岐もできたりするし、
これの意味が分からん
あんまり大規模なコード書いてないからあれだけど
今って関数なりメソッドで分割/抽出して
大本の呼び出しプログラム作って
呼出し元X⇒関数AでreturnしてXに戻す⇒X経由で関数Bに渡す……
みたいな感じになるから、globalとかnolocalとかよほどの事が無い限り使わんぞ
というかこの書き方にしないとユニットテスト作る時にそれこそ地獄やん
>readするだけなら何も書かずに読めるけどwriteするならglobalとかnonlocalつけなきゃいけないとか、リファクタリングするときに地獄だよ。if文で分岐もできたりするし、
これの意味が分からん
あんまり大規模なコード書いてないからあれだけど
今って関数なりメソッドで分割/抽出して
大本の呼び出しプログラム作って
呼出し元X⇒関数AでreturnしてXに戻す⇒X経由で関数Bに渡す……
みたいな感じになるから、globalとかnolocalとかよほどの事が無い限り使わんぞ
というかこの書き方にしないとユニットテスト作る時にそれこそ地獄やん
947デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 11:14:51.02ID:QukxIj6x0 データベース的なものがあって、それを書き換えていくような処理で
関数を分けていくとデータベースまるごと渡すとか、副作用で書き換えるとか、
それはそれでやりたくない処理になってしまう
関数を分けていくとデータベースまるごと渡すとか、副作用で書き換えるとか、
それはそれでやりたくない処理になってしまう
948デフォルトの名無しさん (ワッチョイ 7297-B9Vr)
2021/11/10(水) 11:20:36.44ID:m325nVH90 データベース側にORMのように書き換えインターフェイス生やすんじゃなくて?
949デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 11:29:58.58ID:QukxIj6x0 データベース自体はよく出来たモジュールのインスタンスなので、
インターフェイスといっても、db.read()とかdb.write()とか呼ぶだけ
関数内のローカル変数やグローバル変数であってくれれば座りがいいのに、
わざわざdb.read()を呼ぶ為にdb_access(type=read)を作らないといけない
インターフェイスといっても、db.read()とかdb.write()とか呼ぶだけ
関数内のローカル変数やグローバル変数であってくれれば座りがいいのに、
わざわざdb.read()を呼ぶ為にdb_access(type=read)を作らないといけない
950デフォルトの名無しさん (ワッチョイ ad2c-cRVk)
2021/11/10(水) 13:12:13.09ID:BOw4D0hZ0 普通は操作とdbの間に入出力器を書く
951デフォルトの名無しさん (ワッチョイ 9201-+aG2)
2021/11/10(水) 13:19:05.46ID:GqJmUfwJ0 意味わからん
db をクラスのインスタンス変数に入れときゃいいだけじゃないの?
db をクラスのインスタンス変数に入れときゃいいだけじゃないの?
952デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 13:19:57.22ID:QukxIj6x0 データベースと言うから大仰に構えて当然なニュアンスが漂うけど、
ただのリスト1つでもそんなことするのかと
グローバルにするだけでとてもシンプルに書けるのに
ただのリスト1つでもそんなことするのかと
グローバルにするだけでとてもシンプルに書けるのに
953デフォルトの名無しさん (ワッチョイ b12c-cRVk)
2021/11/10(水) 13:49:39.60ID:hJTDZzkD0 グローバルがそもそもシンプルでねえんだわ
スコープガタガタじゃねーか
スコープガタガタじゃねーか
954デフォルトの名無しさん (エムゾネ FFb2-bQ3l)
2021/11/10(水) 13:56:36.25ID:/xBD3bqRF list で良いんだったら書き換え可能だが
def f(x):
x[0] = 3
def hoge():
a = [1, 2, 3]
f(a)
print(a)
def f(x):
x[0] = 3
def hoge():
a = [1, 2, 3]
f(a)
print(a)
955デフォルトの名無しさん (バットンキン MM62-cRVk)
2021/11/10(水) 13:57:18.76ID:YrLahdlqM まあ
クラス化とか、きちんと引数で渡すとかもせず
色んな領域に同じ名前の変数が生きてて
globalの有無でどっかに何かが入ってしまう
そういう書き散らかしを止める気はないというなら好きにすりゃあいい
バカがひとりでバカやってるだけなら別に害ないし
クラス化とか、きちんと引数で渡すとかもせず
色んな領域に同じ名前の変数が生きてて
globalの有無でどっかに何かが入ってしまう
そういう書き散らかしを止める気はないというなら好きにすりゃあいい
バカがひとりでバカやってるだけなら別に害ないし
956デフォルトの名無しさん (ワッチョイ d963-H2rd)
2021/11/10(水) 14:18:11.30ID:eXHawLmR0 問題起きてなかったし書き捨てが多いからあんま考えないでGlobalしてたわ
これからはクラス使うようにするわ
これからはクラス使うようにするわ
957デフォルトの名無しさん (ワッチョイ d97d-H2rd)
2021/11/10(水) 14:29:52.63ID:17D1Wsta0 使い捨ての小プログラムにいちいちクラス作るのもバカげてると思うんだが
958デフォルトの名無しさん (JP 0Hc1-cRVk)
2021/11/10(水) 14:35:41.41ID:p8NJBIfUH おぬしの場合はとりあえず
def x(db):
__db.append[zzz]
みたいな関係性の明示をすることと
myvarとかlとかdbみたいな名前をつけない(あるいはトップレベルに唯一ある)ようにするという大前提を守ることをしたほうがよい
これを欠くとクラス化も一時しのぎにしかならないで
1段掘っただけだから結局同じ問題にぶち当たるど
def x(db):
__db.append[zzz]
みたいな関係性の明示をすることと
myvarとかlとかdbみたいな名前をつけない(あるいはトップレベルに唯一ある)ようにするという大前提を守ることをしたほうがよい
これを欠くとクラス化も一時しのぎにしかならないで
1段掘っただけだから結局同じ問題にぶち当たるど
959デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 14:44:35.15ID:QukxIj6x0 classは別に魔法ではなくて、globalではないというだけで、
globalと同様の可読性や保守性のいろんな問題はやっぱり付きまとう
複雑なもんはどうやっても複雑で、言語仕様でどうにかなるものでもない
ということなのかもしれない
globalと同様の可読性や保守性のいろんな問題はやっぱり付きまとう
複雑なもんはどうやっても複雑で、言語仕様でどうにかなるものでもない
ということなのかもしれない
960デフォルトの名無しさん (ワッチョイ d201-CJ6T)
2021/11/10(水) 15:02:45.36ID:l5Ahtbnb0 globalと書く必要がない範囲でグローバル変数使う分にはそれほど気にする必要ないよ
雑なimportとかをやらないようにさえしてれば事故る可能性ないから
globalと書く必要があるならクラス化したほうがいい
雑なimportとかをやらないようにさえしてれば事故る可能性ないから
globalと書く必要があるならクラス化したほうがいい
961デフォルトの名無しさん (ブーイモ MM96-Iblw)
2021/11/10(水) 15:47:01.95ID:oOPwtqhaM962デフォルトの名無しさん (ワッチョイ 9201-+aG2)
2021/11/10(水) 16:29:55.36ID:GqJmUfwJ0963デフォルトの名無しさん (ワッチョイ 7297-B9Vr)
2021/11/10(水) 16:39:02.58ID:m325nVH90964デフォルトの名無しさん (ワッチョイ 8101-cdF1)
2021/11/10(水) 17:01:03.65ID:Rkk0NNeP0 挫折したPythonの勉強を再開します
print(“hello,world”)
まで書けるようになりました
print(“hello,world”)
まで書けるようになりました
965デフォルトの名無しさん (ワッチョイ 5e46-Q1RX)
2021/11/10(水) 17:37:49.85ID:tUiCOioK0 Pythonにグローバル変数は存在しないものと思っていたわ...
966デフォルトの名無しさん (ワッチョイ 515f-t1IP)
2021/11/10(水) 17:39:36.16ID:lWh80EFt0 >>964
これであなたもPythonistaですね
これであなたもPythonistaですね
967デフォルトの名無しさん (ワッチョイ 5e10-F6GX)
2021/11/10(水) 18:32:16.57ID:+7kfCCOb0 >>964
よし次は1〜nまで足し算してみよう
よし次は1〜nまで足し算してみよう
968デフォルトの名無しさん (アウアウウー Sacd-bQ3l)
2021/11/10(水) 19:41:12.93ID:VzdAvmBla print(1+2+3+4+5+6+7+8+9+a+b+c+d+e+f+g+h+i+j+k+l+m+n)
969デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 20:42:31.14ID:QukxIj6x0 pythonはインスタンスの生成と関数呼び出しが同じ形式だけど、
本質的にも関数なの?
本質的にも関数なの?
970デフォルトの名無しさん (ワッチョイ d2ad-Iblw)
2021/11/10(水) 21:01:44.22ID:pxJ9VPJB0971デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/10(水) 22:25:22.17ID:QukxIj6x0 a = function_name()
b = ClassName()
よりもnewって書いた方が判りやすいと思うんだけど
b = ClassName()
よりもnewって書いた方が判りやすいと思うんだけど
972デフォルトの名無しさん (オッペケ Sr79-TwtK)
2021/11/10(水) 22:41:51.55ID:iRMzm+o1r >>969
クラスは呼び出し可能です。そのオブジェクトは通常、そのクラスの新たなインスタンスのファクトリとして
振舞いますが、 __new__() をオーバーライドして、バリエーションを持たせることもできます。呼び出しに
使われた引数は、 __new__() と、典型的な場合では __init__() に渡され、新たなインスタンスの初期化に
使われます。
任意のクラスのインスタンスは、クラスで __call__() メソッドを定義することで呼び出し可能になります。
class Foo:
pass
foo = Foo()
foo()
--
一方で第一級関数(ファーストクラスファンクション)としては関数を第一級オブジェクトとして扱うことの
できるプログラミング言語であり、Pythonは「ファーストクラス」として扱えることを目標に作成された。
言語の中のすべてのオブジェクト(数値、文字列、**関数**、クラス、モジュール、メソッドなど)に対して、
名前をつけて、同じように取り扱うことができるようになるということを意味している。関数を変数に格納し
たり、リストの中に並べたり、辞書に格納したり、引数として渡したり、といったことが可能になるのである。
原文:http://python-history.blogspot.com/2009/02/first-class-everything.html
原文投稿者:Guido van Rossum
クラスは呼び出し可能です。そのオブジェクトは通常、そのクラスの新たなインスタンスのファクトリとして
振舞いますが、 __new__() をオーバーライドして、バリエーションを持たせることもできます。呼び出しに
使われた引数は、 __new__() と、典型的な場合では __init__() に渡され、新たなインスタンスの初期化に
使われます。
任意のクラスのインスタンスは、クラスで __call__() メソッドを定義することで呼び出し可能になります。
class Foo:
pass
foo = Foo()
foo()
--
一方で第一級関数(ファーストクラスファンクション)としては関数を第一級オブジェクトとして扱うことの
できるプログラミング言語であり、Pythonは「ファーストクラス」として扱えることを目標に作成された。
言語の中のすべてのオブジェクト(数値、文字列、**関数**、クラス、モジュール、メソッドなど)に対して、
名前をつけて、同じように取り扱うことができるようになるということを意味している。関数を変数に格納し
たり、リストの中に並べたり、辞書に格納したり、引数として渡したり、といったことが可能になるのである。
原文:http://python-history.blogspot.com/2009/02/first-class-everything.html
原文投稿者:Guido van Rossum
973デフォルトの名無しさん (オッペケ Sr79-TwtK)
2021/11/10(水) 23:00:08.21ID:iRMzm+o1r new に該当するものが無いのではなく、object.__new__(Class)が、通常は暗黙的に呼ばれて、それが
classの定義側にあるだけの話です。「判りやすい」と感じるのは個人の主観ですが、ソースコード上で
インスタンスを生成している箇所を(強く意識しており)素早く列挙したいならその通りでしょう。
classの定義側にあるだけの話です。「判りやすい」と感じるのは個人の主観ですが、ソースコード上で
インスタンスを生成している箇所を(強く意識しており)素早く列挙したいならその通りでしょう。
974デフォルトの名無しさん (アウアウウー Sacd-bQ3l)
2021/11/11(木) 09:04:11.34ID:SpIFedoWa975デフォルトの名無しさん (ワッチョイ b533-H2rd)
2021/11/11(木) 10:17:45.17ID:0FR2ffWe0 >>969
本質的には関数もクラスと同じくオブジェクトだよ
本質的には関数もクラスと同じくオブジェクトだよ
976デフォルトの名無しさん (ワッチョイ 12ad-/M7r)
2021/11/11(木) 11:35:35.96ID:gd0ckjQ50 GUIの部分だけはC#で作って
GUIのボタン押したらpythonで処理して
結果をうけとって
GUIのtextboxに書き出すとかできますか?
GUIのボタン押したらpythonで処理して
結果をうけとって
GUIのtextboxに書き出すとかできますか?
977デフォルトの名無しさん (ワッチョイ b136-awrp)
2021/11/11(木) 11:36:58.94ID:pCDIouh90 Python/Qtではダメ?
978デフォルトの名無しさん (アウアウウー Sacd-bQ3l)
2021/11/11(木) 11:42:38.95ID:mCOYpHbIa C# から python のプロセス呼ぶ例はいくらでもゴロゴロしてる
979デフォルトの名無しさん (アウアウウー Sacd-bQ3l)
2021/11/11(木) 11:43:30.14ID:mCOYpHbIa あと毎回プロセス起動する以外に
python 側も常に起動待機状態で
プロセス間通信のサンプルもいっぱいある
python 側も常に起動待機状態で
プロセス間通信のサンプルもいっぱいある
980デフォルトの名無しさん (ワッチョイ 095c-H2rd)
2021/11/11(木) 11:54:48.02ID:bGsY3NmK0981デフォルトの名無しさん (ブーイモ MM96-MEiT)
2021/11/11(木) 17:31:48.67ID:N8d4DWiKM >>961
そういうお達しもさ、破壊的変更がみんなが必要だと思ったら破られるんだよ。
お達しを破らないことが言語開発の絶対目的ではないのだから。
まあ、その場合はPython4ではなくて違う名前の言語として再出発かもしれないけどね。
そういうお達しもさ、破壊的変更がみんなが必要だと思ったら破られるんだよ。
お達しを破らないことが言語開発の絶対目的ではないのだから。
まあ、その場合はPython4ではなくて違う名前の言語として再出発かもしれないけどね。
982デフォルトの名無しさん (ワッチョイ 9e68-+Epa)
2021/11/11(木) 19:39:55.44ID:IVQxVLrO0 名前かわってもイソンは残して欲しいなぁ
983デフォルトの名無しさん (ワッチョイ d2ad-Iblw)
2021/11/11(木) 20:01:58.70ID:ge/OkqSu0984デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/11(木) 20:08:50.94ID:R6JYOOMm0 番号はどうでもいいけど、後方互換性を無くすような変更はもうしないだろ
985デフォルトの名無しさん (ワッチョイ 323b-FSjO)
2021/11/11(木) 20:24:37.72ID:R6JYOOMm0 class Aristocrat:
986デフォルトの名無しさん (ドコグロ MMab-AQUW)
2021/11/12(金) 05:21:48.73ID:ieOoEHdBM ↑
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
次スレの建立は>>985が挑戦する。(980通過して24h後も落ちなくなった)
987デフォルトの名無しさん (ワッチョイ a3ad-RdVS)
2021/11/12(金) 06:54:22.84ID:tS35U29Z0 >>984
3の中ですると公言されてる
3の中ですると公言されてる
988デフォルトの名無しさん (ワッチョイ e33b-7lFM)
2021/11/12(金) 07:48:42.54ID:vp8lzav70989デフォルトの名無しさん (ワッチョイ 1d6f-4I74)
2021/11/14(日) 23:49:27.67ID:o9nMeVTF0 IPythonって流行ってないんかな?対話モードより使いやすくてjupyterより手軽で好きなんだけど
990デフォルトの名無しさん (ワッチョイ 4bb0-tZCU)
2021/11/15(月) 03:20:24.38ID:A9YV+qlK0 Jupyter NotebookはIPython Notebookなんだから「Jupyterは流行ってる」なら「IPythonは流行ってる」を包含してるね
Notebookレイヤーを含まないでコンソールで動かすことを言ってるなら、データ解析系の人には高度な電卓くらいには使われてると思うよ
Notebookレイヤーを含まないでコンソールで動かすことを言ってるなら、データ解析系の人には高度な電卓くらいには使われてると思うよ
991デフォルトの名無しさん (ワッチョイ 7501-p9Jn)
2021/11/15(月) 07:01:12.72ID:mG0JBDTp0 https://blog.narito.ninja/detail/159
このサイトの
store = self.store = get_object_or_404(Store, pk=self.kwargs['pk'])
ってところイコール2個あるけどこれなに?
このサイトの
store = self.store = get_object_or_404(Store, pk=self.kwargs['pk'])
ってところイコール2個あるけどこれなに?
992デフォルトの名無しさん (オッペケ Src1-Jlay)
2021/11/15(月) 07:13:12.96ID:3eTzEir3r >>991
multiple targets assignment
multiple targets assignment
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【速報】気象庁は津波注意報すべて解除 [蚤の市★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- (´・ω・`)おはよ
- さかまた「過呼吸になった」かなた「耳聞こえない」ござる「声出ない」まつり「ご飯食べれない」
- 【画像】カリカリ女、脱いだらすごい😨 [632966346]
- くそしてかがやけ
- 🪬本日のコンマ占い🧿
