2017-02-18 1 views
-1

두 개의 파이썬 스크립트 사이에서 값을 공유하려고합니다. 첫 번째 스크립트에서 값을 싱글 톤으로 설정하지만 두 번째 스크립트에서 값을 얻으면 기본값 (0) 반환됩니다. 여기파이썬 : 공유 값은 항상 0입니다.

내 파일입니다

import mod #import the singleton class 
... 


    mod.setDistance(35) #set the value with the singleton file mod.py 

싱글 톤 파일 : (mod.py)

값을 설정

import mod #import the singleton class 

... 

    def sendDistance(self): 

     print(mod.getDistance()) #get the value 

파일 : 값을 가져옵니다 파일

import distance #import the file where value is stored 
def setDistance(val): #set Value function 
    distance.x=val 
def getDistance(): #get value function 
    return distance.x 

값이 저장된 파일 : (distance.py)

x=0 #the default value that should be modified from mod 

값을 설정하는 파일 (print (mod.getValue()))에서 값을 가져 오려고하면 값이 올바르게 표시됩니다. 게터 측에서 값은 항상 0입니다.

+1

이 질문의 어떤 부분도 나에게 의미가 없습니다. [mcve]? – melpomene

+0

좋아요, 질문을 편집했습니다 – aphi

+0

어떻게 완성 되었습니까? – melpomene

답변

0

거리를 설정하면 실행중인 파이썬에서 만 설정됩니다. 물론 새 값으로 distance.py을 다시 쓸 수 있습니다. 그러나 만 해당 모듈을 가져올 때 다른 스크립트에 영향을 미칩니다.

같은 시간대에 있지만 동일한 시스템에서 실행되는 스크립트간에 데이터를 공유하려면 해당 데이터를 파일에 씁니다. JSON과 같이 쉽게 파싱 된 형식을 사용하십시오.

같은 시간에 동시에 실행되는 서로 다른 스크립트간에 데이터를 공유하는 것이 더 복잡합니다. 가장 쉬운 방법은 한 스크립트가 다른 스크립트를 시작하는 것입니다. 그런 다음 multiprocessing 모듈의 통신 기능을 사용할 수 있습니다.

잠재적으로 다른 컴퓨터에서 실행되는 스크립트간에 데이터를 공유하려면 socket 모듈을 사용할 수 있습니다.

+0

나는 이미 파일로 솔루션을 시도했지만 다른 프로세스는 느려집니다. 다중 처리 기능을 만드는 방법? 어떤 방법으로 파일이 통신 할 수 있습니까? 귀하의 답변 주셔서 감사합니다! – aphi

+0

그리고 변수는 "라이브"여야하므로 지연이 없습니다. 다른 파일에서 직접 변수를 가져올 수 있습니까? 가져 오기가 있습니까? – aphi

+0

가져 오기는 디스크에서 찾은 모듈의 내용 만로드합니다. –