2013-08-02 2 views
1

나는 random2.py파이썬에서 개별 파일의 함수에 전역 변수를 사용하는 방법은 무엇입니까?

random2.py는

def your(): 
    global mine 
    mine = 10 

random1.py이

import random2.py 

global mine 
mine = 4 
random.your() 
print mine 

random1.py 인쇄 중 4하지 (10)

을 가지고, 두 개의 파일이 random1.py이

내 궁극적 인 목표는 선언 된 가능한 모든 변수를 받아 들일 수 있고 함수가 ru 인 후에 해당 변수에 대한 새 값을 사용할 수있는 기능을 갖는 것입니다 엔. 필자는 조직을 위해 별도의 파일에 모든 기능을 갖추고 있습니다. 나는 그들이 같은 파일에 있다면 그것을 작동 것으로 나타났습니다. 나는 특별

+0

에서 4''인쇄되지 않습니다이 코드를 절차의 기능을 복제하는 것을 시도하고있다

; 그것은'ImportError'로 죽을 것입니다. 어쨌든, 이것은 나쁜 생각이며, 파이썬은 여러분이 쉽게 할 수 있도록하지 않을 것입니다. 인수를 사용하여 함수에 데이터를 전달하고 데이터를 전달하는 값을 반환하는 것이 훨씬 낫습니다. – user2357112

+0

키워드'global'은 그것이 들어있는 모듈 (= 스크립트 파일)의 네임 스페이스 변수에 접근하기 때문에 잘못된 이름을 갖습니다 –

답변

0
Could you please directly use **random2.mine** instead of declaring it global again, which makes separate copy of mine variable in random1's namespace. 

random2.mine = 50 
print(random2.mine) 


# Another way of modifying attributes of imported module is 
random2.__dict__[mine] = 100 
print(random2.mine) 

http://docs.python.org/2/tutorial/classes.html#python-scopes-and-namespaces 
http://stackoverflow.com/questions/6841853/python-accessing-module-scope-vars 
관련 문제