2014-10-04 2 views
0

나는 내가 만든 클래스가 있고, 모듈에서는 클래스의 인스턴스를 만든다. 불행하게도 모듈이 끝날 때마다 (예상대로) 클래스 인스턴스도 마찬가지입니다. 나는 그 클래스 인스턴스를 유지하기를 원하고 return (className)을 시도했지만 아무것도하지 않았다.모듈에서 클래스 인스턴스를 반환 하시겠습니까?

해당 클래스 인스턴스를 유지하는 가장 좋은 방법은 무엇입니까?

+0

* *? [최소 예제] (http://stackoverflow.com/help/mcve)를 제공 할 수 있습니까? – jonrsharpe

+0

물론입니다. name과 age에 대한 초기 값을 설정하는 def __init__ 클래스 Person이 있습니다. addFunc() 모듈에서 person1 = Person (inputName) 인 person의 새 인스턴스를 생성합니다. 여기서 inputName은 입력 한 이름입니다. 그 부분은 잘 작동하지만 문제는 addFunc()가 종료 될 때마다 내 person1이 사라진다는 것입니다. – iu34

+1

아니요, 실제로 문제가되는 형식의 코드를 의미합니다. – jonrsharpe

답변

0

addFunc()기능 아닌 모듈로 나타납니다.

함수가 반환 된 후에 을 계속 나타내려면 함수에서 person1 개체를 반환하고 바깥 범위의 변수에 바인딩하십시오. 예를 들어 :

class Person(object): 
    def __init__(self, name): 
     self.name = name 

def addFunc(inputName): 
    person1 = Person(inputName) 
    return person1 

if __name__ == '__main__': 
    person = addFunc('iu34') 
    print person.name 

지금 person1는 addFunc에서 반환 및 person에 바인딩.

addFunc()에 사전이나 목록을 전달하고 거기에 만든 Person 개체를 저장하는 등의 대안이 있습니다. 이는 응용 프로그램에 따라 다릅니다.

+0

굉장합니다, 고마워요. 그게 많은 도움이됩니다! – iu34

+0

나는 그것을 듣게되어 기쁩니다. – mhawke

+0

이 경우에는 실제로'addFunc'가 필요 없습니다. – jonrsharpe

관련 문제