2013-05-30 2 views
1

좋아, 현재 파이썬으로 블랙 잭 게임을 만드는 프로젝트를 진행하고 있는데 문제가 있습니다. 내 문제 중 하나는 변수를 전역으로 정의 할 때, 특히 if 문을 사용하여 함수를 정의 할 때를 모른다는 것입니다. if 문 외부에 전역 변수가있는 경우 변수가 if 문 내에서 전역 변수라고 주장해야합니까? 예 :if 문을 사용하는 함수의 전역 변수

x = 5 
def add(): 
    global x <--- ? 
    x += 1 
    if x == 7: 
     global x <--- ? 
     x = 5 

나는 첫 번째 물음표에서 "global x"가 필요하다고 생각하지만 두 번째 물음표는 어떻게 표시할까요? 전역 변수를 업데이트하기 위해 if 문을 사용하려면 if 문에 "global x"를 넣어야합니까? 또는 함수의 시작 부분에있는 전역 x가 if 문 내부의 x를 전역으로 만듭니다? 또한 여기서 x를 반환하려면 어디에서해야합니까?

+1

전역 변수를 피하고 ** 필요한 경우에만 사용하는 것이 더 좋습니다. –

답변

3

global 문 하나만 있으면 충분합니다. docs에서

는 :

global 문은 전체 현재 코드 블록에 대한 보유 선언이다. 여기 X 반환하기를 원한다면

또한
x = 5 
def add(): 
    global x 
    x += 1 
    if x == 7: 
     x = 5 

, 내가 어디해야합니까?

당신이 어떤 global 문을 사용하지 않은 경우 다음 return x에서, global x 문 다음에 와야 함수에 global을 사용하고 또한 다음 로컬 변수 x를 정의하지 않은 경우 당신은 어디에서와 return x을 할 수 함수.

로컬 변수 x을 정의한 경우 return x이 정의 뒤에 와야합니다.

+1

실제로 거의 모든 상황에서 * 아니오 * 글로벌 문으로 충분합니다 ;-) – Voo