의 외부 함수 내에서 선언 된 값을 사용하십니까?기능
Q
기능
1
A
답변
9
당신은 그것을 반환하고 다른 쪽에서 캡처합니다.
def plop(plop):
ploplop = 1234
if plop == ploplop:
print "I plopped"
return plopplop
someval = plop(1235)
2
def plop(plop):
global ploplop
ploplop = 1234
if plop == ploplop:
print "I plopped"
하지만 전역 변수는 거의 당신은 좋은 답변에 대한 충분한 정보를 제공하지 않을
0
을 사용해서는 안됩니다. 두 함수와 변수 사이의 관계는 무엇입니까? 변수가 영속 상태의 일종을 나타내는 경우
두 함수는 다음 두 가지 방법으로 클래스와 멤버 변수 만들려에 작동하는지 : 변수가의 동작을 제어 할 경우
class Plopper(object):
ploplop = 1234
def plop(self, ploppity):
if ploppity == self.ploplop:
print "I plopped" # ew.
def plop2(self, ploppity):
if ploppity == self.ploplop * 2:
print "I plopped twice"
a = Plopper()
a.plop(1234)
a.plop2(2468)
을 함수가 있고 그것들이 일관성이 있는지 확인하는 것만으로 메소드의 변수를 전역 변수로 가져올 수 있습니다 (contra user1320237, 값을 읽는 것만으로 전역 변수를 선언 할 필요가 없습니다) :
PLOPLOP = 1234 # I like the all-caps convention for global constants
def plop(plop):
if plop == PLOPLOP:
print "I plopped"
def plop2(plop):
if plop == 2 * PLOPLOP:
print "I plopped twice"
plop(1234)
plop2(2468)
1
다른 해결책은 a 함수에 전달하십시오. (나는 너무 많은 플럽이 있기 때문에 함수 이름을 변경했다.)
def f(plop):
f.ploplop = 1234
if plop == f.ploplop:
print "I plopped"
f(5)
print f.plopplop
관련 문제
내가 연습하고있는 코드에서 그 변형을 시도했는데 예상 한 결과가 아니었다. 큰 것으로 불리는 변수를 함수에서 선언하고 다른 함수와 함께 사용하려고했습니다. – Braden
좋습니다. 하지만 여전히 이런 식으로해야하거나 코드를 다시 작성해야합니다. –