변수를 인수로 사용하여 함수 내부에서 변수를 변경해야합니다.함수에서 변수 변경
bar = False
def someFunction(incoming_variable):
incoming_variable = True
someFunction(bar)
print bar
false를 반환, 그것은 True를 반환해야합니다
는 여기에 내가 해봤 코드입니다.
어떻게 변수를 변경할 수 있습니까? 당신의 예에서
변수를 인수로 사용하여 함수 내부에서 변수를 변경해야합니다.함수에서 변수 변경
bar = False
def someFunction(incoming_variable):
incoming_variable = True
someFunction(bar)
print bar
false를 반환, 그것은 True를 반환해야합니다
는 여기에 내가 해봤 코드입니다.
어떻게 변수를 변경할 수 있습니까? 당신의 예에서
수 없습니다. 할당은 새 값으로 로컬 이름을 리 바인드하고 이전 값을 호출 범위에서 변경하지 않습니다.
한 가지 가능한 해결 방법은 돌연변이가 다시 바인딩되지 않는다는 것입니다. 부울 대신 목록을 전달하고 요소를 수정하십시오.
bar = [False]
def someFunction(incoming_variable):
incoming_variable[0] = True
someFunction(bar)
print bar[0]
이 방법으로 클래스 속성을 변경할 수도 있습니다.
class Thing:
def __init__(self):
self.value = None
bar = Thing()
bar.value = False
def someFunction(incoming_variable):
incoming_variable.value = True
someFunction(bar)
print bar.value
그리고 항상 global
입니다.
bar = False
def someFunction():
global bar
bar = True
someFunction()
print bar
뿐만 아니라 자체 수정 클래스.
class Widget:
def __init__(self):
self.bar = False
def someFunction(self):
self.bar = True
w = Widget()
w.someFunction()
print w.bar
그러나 마지막 두와
, 당신은someFunction
에 다른 매개 변수를 전달하는 능력을 잃고, 그래서 그들은 적절하지 않을 수 있습니다. 네가하려는 일에 달렸어.
는 :
bar is global variable existing oustide the scope of function someFunction
Whereas incoming_variable is local variable residing only in the scope of function someFunction
는 someFunction(bar)
전화 : 지역 변수 incoming_variable
False
)의 가치를 평가하는 기능당신이 경우 변수 막대를 간단히 변경하십시오 :
def someFunction(incoming_variable):
bar= incoming_variable