2017-11-15 2 views
0

이 코드에서 일부 변수를 전역으로 만드는 데 문제가 있습니다. 출력 된 숫자를 4, 8, 6, 10으로하고 싶습니다. 출력은 함수가 숫자를 전혀 처리하지 않는 것처럼 항상 1, 2, 3, 4입니다. 각 변수를 함수 앞, 뒤 및 내부에서 전역 변수로 만들려고했으나 작동하지 않았습니다. 누구든지 이것에 대한 해결책을 가지고 있다면 크게 감사 할 것입니다. 내 프로젝트의 실제 코드에는 몇 가지 변수 쌍이 있으며,이를 단순화하기 위해 포함시켰다. 함수의 반환에 변수파이썬 : 다른 매개 변수를 전역으로 설정

Xone = 1 
Yone = 2 
Xtwo = 3 
Ytwo = 4 
def function(parameterOne, parameterTwo): 
    parameterOne = parameterOne + 3 
    parameterTwo = parameterTwo + 6 
function(Xone, Yone) 
function(Xtwo, Ytwo) 
print str(Xone) 
print str(Yone) 
print str(Xtwo) 
print str(Ytwo) 
+1

무엇이 있습니까? 함수 내에서 변수에 대해 아무 것도하지 않습니다. –

+0

매개 변수는 절대 전역이 될 수 없습니다. –

+0

물론 가능합니다. OP가 불변의 타입을 사용하고있는 것뿐입니다. 'Xone = [1]'그리고'function'을 parameterOne [0] = parameterOne [0] + 3. Xone == [4]로 바꾼다. – cowbert

답변

0

지정 값 :

def function(parameterOne, parameterTwo): 
    parameterOne = parameterOne + 3 
    parameterTwo = parameterTwo + 6 
    return parameterOne, parameterTwo 

Xone, Yone = function(Xone, Yone) 
+0

이 도움 주셔서 감사합니다. 이 질문에 대한 답변입니다. 내 프로젝트에서 이것을 사용할 수 있었고 작동했습니다! 도움에 정말 감사드립니다. – Darthflippo

0

당신은 계산 된 값을 반환 할 수 있습니다

def function(parameterOne, parameterTwo): 
    return (parameterOne + 3, parameterTwo + 6) 

Xone = 1 
Yone = 2 
Xtwo = 3 
Ytwo = 4 

Xone, Yone = function(Xone, Yone) 
Xtwo, Ytwo = function(Xtwo, Ytwo) 

print str(Xone) 
print str(Yone) 
print str(Xtwo) 
print str(Ytwo) 

이 반환

4 
8 
6 
10 
+0

이 도움 주셔서 감사합니다. 이 질문에 대한 답변입니다. 내 프로젝트에서 이것을 사용할 수 있었고 작동했습니다! 도움에 정말 감사드립니다. – Darthflippo

관련 문제