Visual Studio Code / VSCode Part16 (896レス)
前次1-
抽出解除 レス栞

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
807
(3): デフォルトの名無しさん [sage] 2025/09/22(月) 18:03:50.81 ID:kGquSE5R(1) AAS
Pythonで、以下のようにグローバル変数を運用してます

gval.py:
(中身無し)

func.py:
import gval as g
def dup():
 return g.valueA * 2

main.py:
import gval as g
import func as f
g.valueA = 10
print(f.dup()) # 20
g.valueA = 15
print(f.dup()) # 30

しかしこのようにすると、VSCodeのサジェストでg.valueAが提示されません
グローバル変数として何が存在するのかは実行時まで分からないためかと思いますが、
フォルダ内のソースから探してサジェストしてくれるような機能や設定はあるでしょうか
808
(1): デフォルトの名無しさん [sage] 2025/09/22(月) 18:49:35.89 ID:LbHdpdap(1) AAS
>>807
フォルダ単位でオープンしてる?
811
(1): 807 [sage] 2025/09/23(火) 09:57:26.95 ID:giYDjsRa(1) AAS
>>808
はい
同一フォルダの別ファイルに、
g.valueA = 10
g.valueB = 20
g.valueC = 30
のように、グローバル変数としたい値を定義したりしています
でも、それらは候補に挙げてくれないです

>>809
809(1): デフォルトの名無しさん [sage] 2025/09/22(月) 18:52:20.77 ID:Ow6is+fL(1) AAS
グローバル変数というより、動的に追加された属性の話なのでは。
gval.py の中にvalueA: int みたいな感じで静的に属性を持たせておくのではダメなん?
現状のソースがこのルールで作成されているので、
なるべくなら避けたいなと
現状のソースがどうしてこういうルールにされているのかは、
作成者が海外のサイトを見てヒントを得たようです
814: デフォルトの名無しさん [sage] 2025/09/23(火) 10:24:23.58 ID:U5/crNyE(1) AAS
グローバル変数を定義しているその別ファイルを、gval.pyの代わりにfunc.pyとmain.py に名前g で import すれば良い気もするけど……。

元の>>807のコードは、動的に属性を追加する(生やす)ターゲットとするためだけに空のモジュールをimportするというトリッキーな内容だけど、何か深遠な意図があってそういう設計にしているのか、何も分かってない人が書いたコードなだけなのかが分からないな。あまり普通の書き方ではないと思うけど。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.023s