2017-11-14 6 views
-2

関数内に変数を作成し、その変数を関数外で使用したいと考えています。これを行う方法はありますか?たとえば:Python - 関数内で変数を作成すると、関数の外で変数を使う方法はありますか?

def Function(): 
    score = 5 

Function() 

print(score) 

ありがとうございました:)

+0

それを関数から別の変数に '返す '。 – deceze

+0

'score'を返してから関数呼び出しを印刷します – MooingRawr

+1

[Pythonモジュールから変数を正しく返します](https://stackoverflow.com/questions/16752512/correctly-return-variable-from-python-module)の可能な複製 –

答えて

0

をあなたは

def Function(): 
    score = 5 
    return score 

score=Function() 

print(score) 
+0

コメントは議論の対象外です。この会話は[チャットに移動]されています(http://chat.stackoverflow.com/rooms/159006/discussion-on-answer-by-superstew-python-if-i-create-a-variable-inside-a- funct)。 – deceze

0

技術的にはあなたがglobalキーワードを使用することができ、それを返すことがあります:あなたはカップルのオプションを(持っている

def Function(): 
    global score 
    score = 5 

Function() 
print(score) 
+0

しかし、絶対に必要とされないときは、グローバル変数を使用することは技術的に嫌われています。 – NendoTaka

+0

@NendoTaka私はそれが何か良いとは言いませんでしたが、OPが求めるものは確かです。 – tevemadar

+1

@tevemandar私は同意しますが、誰かが悪い習慣に陥るのを防ぐためにはベストプラクティスではないことに気付きました。すべてをグローバル変数にする。しかし、うまくいくでしょう:) – NendoTaka

1

を誰でももっと貢献してくれる)。

メソッド1.変数を関数外に宣言し、関数内で変数を設定します。

​​

方法2.変数を返し、それを使用して設定します。

def Function(): 
    score = 5 
    return score 

print(Function()) # This bypasses the need to declare score outside the function. 
# print(score) # This would not do anything useful, as score was never declared in this scope. 

メソッド3.オブジェクト指向のアプローチを使用します。

class App: 
    def __init__(self): 
     App.score = 5 

App() 
print(App.score) 

最初の方法では、関数の外部で変数スコアを宣言する必要があることに注意してください。

+1

さまざまなアプローチの長所と短所について簡単に説明すると役に立ちます。あなたが最初に最貧の選択肢を挙げるので、これは特に真実です。ここでOPは、最初の方法を広く採用するとコードが非常に貧弱になることを知っておくべきです。 – tom10

+0

コンテナの内容を変更することは、関数の外でも持続します。 'score_list = [score] def Function()score_list [0] = new_score'は、main関数が' score_list [0] 'にアクセスすることによって' new_score'にアクセスすることを許可します。私たちが網羅的であれば、変数をディスクに書き込んだり、メモリに読み込んだりすることもできます。 – Acccumulation

関連する問題