2016-08-03 11 views
-1

からオブジェクトを返さ取得:スパイダーでの私のメインの.pyファイルでPythonはこのモジュール(sample.py)を考えると呼ばれるモジュール

def calculation(x): 
    r = x + 1 
    return r 

、私はこのようにそれを呼んでいる:

import sample 
b = sample.calculation(2) 

私の(ダム)の質問です: サンプルモジュールで定義された私は、Rにアクセスする方法に、私はサンプルを呼んでいる、そこからメインの.pyファイル内の他の計算のために?

は、私のような何か実行していきたい:呼び出した後、メインの.pyファイルに

a = r/2 

sample.calculation(2) 

アップデート:私は数につながるBを引き受ける

3. しかし、どのような場合は、モジュールが2つの異なる数値(オブジェクト)を返しますか?個別にアクセスするにはどうすればよいですか?

+1

を行うことができます私はかなり疑問を得ることはありません。あなたは 'B'に結果を格納するので、なぜあなたは単に 'A = B/2'ないのですか? –

+0

モジュールは物事を返さない。関数は物を返します。 – user2357112

答えて

1

別のモジュールの変数にアクセスすると、それがグローバルすることによって可能です。しかし、それは良い習慣ではなく、しばしば避けられます。あなたは、この代わりに

import sample 
r = sample.calculation(2) 

この方法を行うことができますが、同じ変数名「r」を使用することができますが、それは今のローカル変数です。モジュールから複数のオブジェクトを返すについてのあなたの2番目の質問については

、あなたはこの

def module1(x): 
    return x+1,x+2 

a,b = module1(5) 
#a has 5+1 = 6 
#b has 5+2 = 7 
1

質問:サンプルモジュールで定義されているrにアクセスするにはどうすればいいですか?私がサンプルと呼んでいるメインの.pyファイルの他の計算にはどうすればいいですか?

値を割り当てた変数bを使用します。

しかし、どのような場合は、モジュールが2つの異なる数値(オブジェクト)を返しますか?個別にアクセスするにはどうすればよいですか?

あなたが機能を意味している場合、このん:

def wrong_way(): 
    return 1 
    return 2 
:あなたは機能がこれを行う意味場合

a, b = module.return_two_things() 

def return_two_things(): 
    return 1, 2 

、あなたは、2つの変数に割り当てます

その後、あなたの関数が間違っている、とあなたはどのよう誤解していますステートメントが機能します。関数はreturnを実行するとすぐに終了します。それ以上のものを返すことはありません。

関連する問題