기능

2012-06-04 4 views
1

의 외부 함수 내에서 선언 된 값을 사용하십니까?기능

답변

9

당신은 그것을 반환하고 다른 쪽에서 캡처합니다.

def plop(plop): 
    ploplop = 1234 
    if plop == ploplop: 
     print "I plopped" 
    return plopplop 

someval = plop(1235) 
+0

내가 연습하고있는 코드에서 그 변형을 시도했는데 예상 한 결과가 아니었다. 큰 것으로 불리는 변수를 함수에서 선언하고 다른 함수와 함께 사용하려고했습니다. – Braden

+0

좋습니다. 하지만 여전히 이런 식으로해야하거나 코드를 다시 작성해야합니다. –

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