2016-12-03 1 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

함수에서 가져올 수 없습니다. 두 가지 방법으로 동일한 결과를 얻을 수 있습니다. 1은 전역 변수를, 다른 하나는 함수에서 변수 a를 반환하는 것이 좋습니다. 전역 변수를 사용하여

당신은 할 수 반환

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

"전역 변수 'A'모듈 수준에서 정의되지 않는다"기능을하기 전에 –

+0

'yandn'에서 전역 변수'a'가 존재하지 않는다면, 함수 밖에서'a = None'으로 초기화 할 수 있습니다. – Skycc

+0

그러나 while 루프에 대한 촉매가 될 수 있도록 c = 1이므로 c = 0 = 1이고 a가 yandn 함수에있을 때, 나는 이것을하려고한다. 그래서 나는 내 코드에 공간을 절약 할 수 있고 지루한 "if y == 1"을 끊임없이하지 않아도된다. P.S 혼란을 야기 할 수 있다고 생각해서 마지막 코멘트가 삭제되었습니다. –

3

아니요. 함수에서 가져올 수 없습니다. 왜 안돼 yandn돌아 가기?

관련 문제