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. 変数をグローバルに変更しないでください
- 4. ゲームオブジェクトとその関数/変数を別のJavascriptファイルで使用するには
- 5. 関数の変数と関数の変数に同じ名前があります。アクセスするには?
- 6. 2つのPHP関数に同じ変数を使用する
- 7. エリキシル剤にはグローバル変数はありません。ある関数から変数を取り出して別の関数で使用する方法は?
- 8. Pythonで別の関数内のある関数の変数を使用する
- 9. JavaScript - ある関数の変数の値を別の関数で使用する
- 10. グローバル変数と同じ関数内の変数名です。どんな問題?この良いスタイルですか?
- 11. 、私は、関数の外で別の変数を使用する変数を作成したい関数C#
- 12. グローバル変数を怠惰にしないでください
- 13. グローバル変数の値を関数に渡さないのはなぜですか?
- 14. グローバル変数をバインドしますが、コールバック関数に 'this'を指定しないでください
- 15. グローバル変数を使用せずに別の関数でローカル変数にアクセスする
- 16. AS3ある関数の変数を別の関数で使用する - 動作しない
- 17. なぜSelenium webdriverにグローバル変数を使用しないでください。
- 18. ある関数から別の関数に変数を渡すにはどうしたらいいですか?
- 19. 変数名ではなく、同じ文字列名を使用して変数の関数を使用するにはどうすればよいですか?
- 20. Javascript - 別の変数で使用する関数の変数
- 21. 同じ行のローカル変数とグローバル変数にアクセスするbash
- 22. 別の関数で複数の変数を同じビューに渡す方法 - Laravel
- 23. は、別の関数の中に関数を呼び出すとその変数
- 24. 別の関数の関数のJavascript変数を使用する
- 25. Python:パラメータでもあるグローバル変数を変更する関数
- 26. 関数内のグローバル変数を変更できない(JavaScript)
- 27. 再帰関数によって使用されるグローバル変数
- 28. PHP関数ですべてのグローバル変数を一度に使用
- 29. C - ユーザー関数内のグローバル変数にアクセスできない
- 30. グローバル変数の値が複数の関数で使用できない