X



プログラミングに詳しい人きてください
■ このスレッドは過去ログ倉庫に格納されています
0001以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:28:54.697ID:Wzw8hYaj0
Enterキーを押すと処理Aが実行される
処理Aは変数xを使って行われる

処理A実行中にEnterキーを押すと、変数xが2処理内で使われて挙動がバグる

同時までとは言わないが、処理A中に処理Aを実行する方法はないか

無名変数とかあればいいんだけど

詳しい人いる?
0002以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:30:04.510ID:Ajnu5hF00
処理実行中か管理すればいんではないの
0003以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:31:45.558ID:Wzw8hYaj0
>>2
すごく簡単に言うと、xに代わるその時に実行された処理用の変数が欲しいんだ
xを関数ごとに定義出来ればバグらないと思う
0004以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:32:40.819ID:lBSBlc370
言語は
0005以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:33:18.370ID:TQlcCCIk0
言語何?
インタプリタ系?
0006以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:34:09.985ID:Wzw8hYaj0
>>4
Pythonです

なんとなく、処理Aの、

def A(): ←ここになんか入れたらいい気がする
0007以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:34:51.429ID:JkPiPbWR0
コーディングできない人だけど
レーザープリンターとかのキューの処理みたいに処置を記憶されておいて順次処理させていくのは?
0008以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:36:08.624ID:Wzw8hYaj0
>>7
順次じゃダメなんだ…
処理A中に処理Aを実行したい
0009以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:37:13.045ID:Wzw8hYaj0
使い捨て変数とかないかしら

ちなみになんだけど、変数xは他の処理では全く使わない
あくまでも処理Aを行うための変数
0010以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:39:00.783ID:Wzw8hYaj0
処理Aで無名変数を定義してそれをxとして使ってリストに格納して、カウンターでインデックス指定して取り出して使う方法も考えた
でもそれだと結局カウンター用の変数が2処理内で使われてバグる
0011ちくわ ◆Chikuwa...
垢版 |
2022/11/22(火) 06:39:25.203ID:JjgZNzpX0
処理Aの最初に現在の時刻などを取得してそれを変数名にする(今xとしているもの)
0012以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:40:19.248ID:JkPiPbWR0
>>8
普通は排他処理で考えるものじゃないかな
何msecの世界で行われているから事実上リアルタイムに行われているように見えるだけで
0013以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:42:36.811ID:QMxd4MQwd
そもそもなんでバグるのかが分からん
xを書き換えてるのか???
xはどこで定義してるのか
0014以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:43:17.565ID:4ifBMLHnr
xが二ヶ所で更新しあってバグるってこと?
変数増やしちゃあかんの?
0015以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:43:55.758ID:pjf5RZTu0
再入可能とは違うの
0016以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:44:48.980ID:TQlcCCIk0
X書き換えなかったら大丈夫だと思うけどPythonのクソ仕様とかあるからわからんね
int Hoge(int X)
{
int Y=X+3
return Y
};
とかでいけないか?
0017以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:46:43.915ID:TQlcCCIk0
Pythonとかなら型が動的だから最初に実行したときは型推論うまくいったけど2回目やるときは変な型になって処理ができんくなったとか?
型指定できるらしいからやってみてもう一度試してみたら?
0019以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:48:13.349ID:gW/hZI38a
愚直だけどグローバルでA実行中フラグを宣言して
A処理開始したらそれをtrueにして
A処理全体をifで囲んでA実行フラグがfalseじゃないと実行できないようにする
A処理終わったらfalseにすればA処理を並列で走らせられなくなる
0020以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:49:41.406ID:TQlcCCIk0
>>18
async/awaitはC#が一番最初
他の言語はC#からこの仕様をパクった
0021以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:52:59.117ID:lBSBlc370
id(x)が呼び出しごとに変わらないからバグってるんだよな
思いつく範囲だと辞書を用意しておいて >>11 かなあ
0022以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:54:46.658ID:4ifBMLHnr
xがどういう用途なのかわからん
A以外で使わないなら>>6で値渡しでA(x)にするだけでええやん
0023以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 06:57:51.505ID:QMxd4MQwd
引数が変わるだけなら即時関数とか高階関数で行けるかもしれない
0024>>1
垢版 |
2022/11/22(火) 06:59:39.054ID:m5fGLBHEa
ごめん
チャリで駅向かってた
>>1です

そしてごめん、xは書き換えるんだ…
0025ちくわ ◆Chikuwa...
垢版 |
2022/11/22(火) 07:00:46.763ID:JjgZNzpX0
xをexec()などを使って動的な変数にする
0026>>1
垢版 |
2022/11/22(火) 07:03:28.331ID:m5fGLBHEa
x=1
class A
def B(event=None):
処理B
A.B()
def C(event=None):
処理C
A.C()
def D(event=None):
処理D

簡略化するとこんな感じ

処理B~D全てでxに別値を代入する
処理C中に処理Bを実行すると処理Bで処理Cにおけるxが使われてバグるということです
0027以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:05:05.057ID:QMxd4MQwd
値で渡せばいい
0028>>1
垢版 |
2022/11/22(火) 07:06:25.308ID:m5fGLBHEa
ちょっとレス見かえす
0029>>1
垢版 |
2022/11/22(火) 07:10:05.533ID:m5fGLBHEa
>>18
これはすごいな……
仕事終わったら試す
0030ちくわ ◆Chikuwa...
垢版 |
2022/11/22(火) 07:12:56.991ID:JjgZNzpX0
>>26
xをリストにして処理Bが実行されるたびにインデックスを1ずつ増やし、x[0]に代入、x[1]に代入、x[2]に代入…

ってされるようにするとか?
0031以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:13:33.589ID:VlA/iA0A0
変数Y作ればよくね?
Xのみじゃないとなんか不具合あんの?
0032おじ乳輪様 ◆IQ90.av/.Akz
垢版 |
2022/11/22(火) 07:17:54.734
よく分からんけどローカル変数なら呼び出されるごとに作られるから関係ないやろ
ローカル変数じゃないならすまん
0033ちくわ ◆Chikuwa...
垢版 |
2022/11/22(火) 07:18:58.452ID:JjgZNzpX0
>>32
ん?確かにそうかも
0034以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:19:13.253ID:lBSBlc370
一応ラムダ式使えばどうにかなりそうなことは確認した
0035以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:20:45.147ID:lBSBlc370
def A(a):
f = lambda x:print(id(x))
f(a)

A(1) # 2639232198960
A(2) # 2639232198992
0036以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:23:24.206ID:lBSBlc370
いやこれ引数自体が違うからか
忘れてください
0037以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:33:25.065ID:4ifBMLHnr
>>26
処理Aと処理Aじゃなくなってるやん
あとclass Aの外のxを処理中に更新しなきゃいけない理由がわからん

処理Cの後のA.C()って再帰ってことでいいんかな?再帰関数def Cとは別に実行関数def C_を用意してC_内でx_c=xとかしてC_のローカルに落としてからC()を実行すれば処理C全体が終わるまでクラス外のx更新をせずに済むと思う
0039>>1
垢版 |
2022/11/22(火) 07:35:46.131ID:m5fGLBHEa
>>31
カウンターとして使うんだ

仕事絡むから詳しくは言えないけど、処理Cは0.1秒で1回、計10回実行する必要がある
だから訳あってfor文では早すぎて代用できないんだ…
0040以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:36:05.720ID:2MZSXVapa
こういうのは往々にして設計が間違ってるパターンだけど>>1はそういうの求めてないんだよね
出した手札だけで解決方法を教えてくれってパターンが多い
0041>>1
垢版 |
2022/11/22(火) 07:39:45.800ID:m5fGLBHEa
そんなつもりはなかったんだが、後付け訂正たくさんでごめん

x=1
class A
def B(event=None):
処理B
A.C()
def C(event=None):
処理C
A.D() #10回実行後
def D(event=None):
処理D
return
0042以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:40:47.696ID:+/Wr3NG20
ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
0043以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:41:13.443ID:lBSBlc370
xは処理B,C,Dの実行回数(同時に実行される可能性もある)を数えるようなものと思っていい?実際は違うかもしれないけど今までの話だと処理としてはそのような物だと認識してる
0044以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:41:29.357ID:4ifBMLHnr
ワロタ
いくらでもやりかたあるとおもうけどか具体的に何がしたいのか説明されんともう何も言えんわ
0045以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:45:55.348ID:mHTNV3dn0
質問のレベルが低すぎてひくわ
こういう頭のレベルのやつがプログラミングやると害にしかならんのよな
0046ちくわ ◆Chikuwa...
垢版 |
2022/11/22(火) 07:45:59.737ID:JjgZNzpX0
すでにこのスレで指摘されたどれかでいけんじゃね
0047以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:46:41.800ID:VlA/iA0A0
普通にY作ってY=Y+〇〇ってやればいいだけでは?
0048以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 07:47:58.996ID:SH28KV+X0
各処理でxを何に使ってんのか分かんないからアドバイスのしようがなくないか
共通である必要性あるの?
0050>>1
垢版 |
2022/11/22(火) 08:03:22.797ID:m5fGLBHEa
(´・ω・`)
0051以下、5ちゃんねるからVIPがお送りします
垢版 |
2022/11/22(火) 08:04:21.900ID:lNiTqcb50
なにこれpython
同じ処理ゲームのマクロ作るのに作った気がするから
後でPC開けたら送ってやるよ
■ このスレッドは過去ログ倉庫に格納されています

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