2016-12-03 3 views
0

私の問題は、def関数の変数を使いたいと思っています。私はそれをどうやって行うのか、あるいは私ができるのかわかりません。ここで私はあなたが関数から物事をインポートすることはできません関数から変数をインポートするには?

def yandn(prompt='Y/N:'): 
    no=1 
    while no==1: 
     ok=input(prompt) 
     if ok.lower()==('y'): 
     a=0 
     b=0 
     break 
    elif ok.lower()==('n'): 
     a=1 
     b=0 
print('Blah Blah Blah') 
c=1 
while c==1: 
    d=input('Blah Blah:') 
    if d.lower() in valid: 
    print('Confirm', d, 'as blah.') 
    yandn() 
    from yandn import a 
    if a==1: 
     c=1 
    else: 
     c=0 
+0

を使用して

a = None # initialize global var def yandn(prompt='Y/N:'): global a # indicate a as global var # continue with function code yandn() # no need import, now var a is accessible 

'を返し' yandn – rapvelopment

答えて

1

関数からインポートすることはできません。あなたが同じことを達成できる2つの方法があります.1つはグローバル変数であり、もう1つは関数から変数aを返すことです。グローバル変数を使用して

あなたは可能性があり、戻り

a = yandn() 
# you got the var a from yandn function now 
+0

"グローバル変数 '' モジュールレベルで定義されていない" 関数の前 –

+0

'yandn'からグローバル変数 'a'が存在しない場合は、' a = None'を指定して関数の外で初期化することができます – Skycc

+0

しかし、whileループの触媒になるようにc = 1とすることで、 a = 1でaが関数yandnにあるときは0、これをやろうとしています私のコード上のスペースを節約することができますし、 "y == 1の場合"という面倒な作業はしません。 P.最後のコメントは、混乱を招くと感じたため削除されました。 –

3

番号を使用しているコードです。なぜ持っていないyandn返信

関連する問題