2016-08-22 7 views
0

나는 함수와 while 루프가있는 파이썬 스크립트를 가지고 있는데, while 루프가있는 다른 파이썬 스크립트에서이 함수를 호출하려고합니다.while 루프를 사용하여 다른 파이썬 스크립트에서 함수 호출하기

script1.py : 예를 들면 다음과 같습니다 스크립트입니다

global printline 
printline = abc 

def change(x): 
    global printline 
    printline = x 

while True: 
    global printline 
    print printline 

그리고 이것은 script2.py입니다 : 내가 script2.py을 실행하면

from script1 import change 

change(xyz) 

while True: 
    print hello 

, 그것은 ABC와 아무튼 '인쇄 시작 이 스크립트에서 while 루프로 들어가십시오.

script1.py를 실행하면 abc가 인쇄됩니다.

두 터미널을 서로 달리 사용하면 둘 다 abc를 인쇄합니다.

두 스크립트가 모두 실행될 때 script2.py가 while 루프로 들어가는 동안 printline 변수를 변경할 수 있도록해야합니다.

내가 파이썬을 처음 접했을 때 올바른 방법인지는 모르겠다.

감사합니다.

+1

그 가능성이 실제 스크립트가 될 수 없습니다. 'abc'와'xyz'에서 "이름이 정의되지 않았습니다"오류가 발생하지 않습니까? 문제가있는 실제 코드를 축 어적으로 게시하십시오. 그렇지 않으면 누구나 추측 할 수 있습니다. –

+0

이 스크립트는 동일한'printline' 변수를 공유하는 별도의 프로그램으로되어 있습니까? 에서처럼, 두 스크립트가 동시에 실행될 때, 그들은 같은'printline' 변수를 공유합니까? –

+0

'abc'와'xyz'는 문자열''abc "'와''xyz"'입니까? – Barmar

답변

1

from script1 import change을 실행하면 script1.py에있는 모든 최상위 코드가 실행됩니다. 따라서 무한 루프를 반복하는 while True: 블록을 실행하며 결코 script2.py으로 되돌아 가지 않습니다.

script1.py을 분리해야 최상위 코드를 실행하지 않고 change() 함수를 가져올 수 있습니다.

change.py :

def change(x): 
    global printline 
    printline = x 

script1.py :

from change import change 

change("abc") 
while True: 
    print printline 

script2.py :

from change import change 

change("xyz"); 
while True: 
    print printline 
관련 문제