1つの関数から1つの変数を取って、その変数をグローバルにすることなく別の関数で使う方法はありますか?同じ変数をある関数で別の関数と一緒に使用するには、その変数をグローバルにしないでください。
-1
A
答えて
4
あなたは基本的に2つの選択肢があります。
1つ目は、2番目の関数にパラメータとして渡すことです。 (最初の機能に値の変更を見たい場合は、参照タイプ(dict/listなど)でオブジェクトを上書きしないでください。変更するだけです(a = a + [b]
ではなくa.append(b)
)
第二は、シングルトンとして使用することができますクラスを定義することです技術的には、これはまだ「グローバル」なものを定義しているが、それはあなたがグループ化されたものを維持することができます:。
class FooSingleton(object):
class_var = "foo"
def func1():
FooSingleton.class_var = "bar"
def func2():
print(FooSingleton.class_var)
(あなたはまた、でこれを行うことができますクラスの代わりにdict
;優先事項)
2
は、関数がパラメータを取る必要があり、かつその中にパラメータを渡す。
def one_function():
one_variable = ''
return one_variable
def another_function(a_param):
# do something to a_param
return
0
技術的に可能であり、e .g。メモ化のために(しかし、それは通常、デコレータの後ろに隠れていると、彼らはまだそれについて少し気分が悪い場合でも正しいことを行うことを確認している人々によって実装のみ):
def g():
if not hasattr(g, "x"):
g.x = 0
return g.x
g()
# 0
g.x = 100
g()
# 100
0
あなたはにクロージャを使用することができます
これを処理するか、より自然なことは、両方の関数をクラスのメソッドとして定義し、グローバル変数をクラスのメンバーとして定義することです。
関連する問題
- 1. JavaScriptでグローバル変数と関数を使用しないようにする
- 2. 関数の変数と関数の変数に同じ名前があります。アクセスするには?
- 3. 、私は、関数の外で別の変数を使用する変数を作成したい関数C#
- 4. グローバル変数を怠惰にしないでください
- 5. Javascript - 別の変数で使用する関数の変数
- 6. ある関数から別の関数に変数を渡すにはどうしたらいいですか?
- 7. AS3ある関数の変数を別の関数で使用する - 動作しない
- 8. なぜSelenium webdriverにグローバル変数を使用しないでください。
- 9. 再帰関数によって使用されるグローバル変数
- 10. C - ユーザー関数内のグローバル変数にアクセスできない
- 11. PHP関数ですべてのグローバル変数を一度に使用
- 12. グローバル変数を使用してJavascriptの同じ関数内から関数を呼び出す
- 13. 同じ名前の関数と変数
- 14. 関数内の引数に対してグローバル変数を使用するのはいつですか?
- 15. returnステートメント変数を別の関数変数に渡すには?
- 16. ネストされた関数内でグローバル変数にアクセスする
- 17. グローバル変数をjavacriptの.click関数内のwindow.prompt()変数に変更する
- 18. 2つの関数で使用されるグローバル変数を削除します
- 19. グローバル変数を別の関数によって呼び出される関数に渡す方法
- 20. ある関数で使用されている変数を別の関数で呼び出すにはどうすればいいですか?
- 21. 呼び出すことなく関数内のグローバル変数を変更する
- 22. 他のインクルード.cppファイルで関数とグローバル変数を使用する方法は?
- 23. 別の関数のある関数で定義され、宣言された変数にアクセスする方法は?
- 24. jQuery/Javascript:関数内にグローバル変数を定義するには?
- 25. ある関数から別の関数に変数を渡すJavaScript
- 26. Rでは、関数内の変数を関数内の下位レベルの関数で使用する方法を教えてください。(with、attach、environment)
- 27. 異なる関数を書くときと、同じ関数をパラメータで使うときはいつですか?
- 28. 関数内の変数を別の関数に呼び出す#
- 29. PHPのグローバル変数とグローバル変数の正確な違いを推測してください
- 30. PHPで関数外で変数を使用するには?