48966

[code]

    def outer():
       def inner():
          a = 2
          b = a + 1
          return b
    
       inner()
    
       c = str(b)
       print(c)
    
    outer()
    
[/code]

やりたいことはinnerのbをouterで使いたいのです。  
基本的な質問かもしれませんが、教えていただけるとありがたいです。


CC BY-SA 4.0
2018-10-04T07:36:59.427
48959
2018-10-04T17:21:44.197
2018-10-04T17:21:44.197
19110
30362
question
python python3
別の関数から関数に値を渡す方法


関数はステートレスな（内部に状態を持たない）ものです。  
そして、関数には引数で値を渡し、関数からは返り値で値を得るというのが基本です。

オブジェクトのような内部状態（プロパティ）を持つもの、同じ引数でも内部状態によって返り値が変わるメソッドとは区別してください。


CC BY-SA 4.0
2018-10-04T08:37:41.640
48961
2018-10-04T08:37:41.640
217
48959
answer


Fumu7さんがおっしゃるように、関数で計算した結果は、  
戻り値として返し、新しい変数に入れるのが普通のやり方です。  
仰ったことを、今回のに合わせた形で、コードとして書くと、  
このようになります。一応ですが、混乱を避けるため、似たような名前は付けないほうがいいと思います。しかしこれくらいのプログラムでは、見分けはだいたいつくため、同じbを使っています。

[code]

    def outer():
       def inner():
          a = 2
          b = a + 1
          return b
    
       b = inner()#bという変数を作り、戻り値を渡す。
    
       c = str(b)
       print(c)
    
    outer()
    
[/code]


CC BY-SA 4.0
2018-10-04T10:12:56.777
48966
2018-10-04T10:12:56.777
24284
48959
answer