다른 파이썬 파일에서 현재 변수로 변수를 가져 오는 데 문제가 있습니다. 이전에 여러 번 물어 본 적이 있지만 거의 모든 해결책을 시도했지만 사용하지는 않았습니다. 파일 top.py에서전역 변수를 가져 오는 파이썬의 동작이 일관성이 없음
:
import sys, getopt, pdb
import argparse
import my_parser
my_parser.start_parse(6)
my_parser.in_out(2)
print "info: ",my_parser.verilog_inps
print "N1 data: ",my_parser.ckt_data["N1"]
파일 parser.py에서 (처음 몇 줄) :
from collections import defaultdict
ckt_data = {}
global verilog_inps
verilog_inps = []
global verilog_outs
verilog_outs = []
global levels
levels = []
level_dict = defaultdict(list)
class ckt_elements:
delay = 0
inp_ = {}
out_ = {}
level = 0
change = False
prev = {}
typ_ = ""
def start_parse(a):
ckt_data["N1"] = a
def in_out(a):
verilog_inps = [a,a+1,a+2]
이상한 것은 내가 몇 가지 변수에 액세스 할 수 오전이다 나는 다른 사람들을 위해 그렇게 할 수 없다. (나는 접근 할 수없는 사람들이 도움이되는지 아닌지를 알기 위해 선언했다.)
앞서 언급 한 전역 변수들은 parser.py의 함수에서 수정되고있다.
그래서 내 질문 : 왜 이상한 행동입니까? 내가 뭔가 잘못하고 있는거야? 파이썬을 사용하여 2.7
이 문제는 편집이
내가가 직면하고있는 문제를 해결 한
(I이 더 잘 설명하기 딱하다) 충분히 명확하지 않은 경우 알려 주시기 바랍니다 전역 정의 파일을 사용합니다. 별도의 파일에서 변수를 선언하고 모든 관련 파일에 파일을 가져 왔습니다. (import globals
사용)
어쨌든 나는 이전의 접근 방식에 무엇이 잘못되었는지 궁금하다.
def in_out(a):
verilog_inps = [a,a+1,a+2]
실제로 글로벌 verilog_inps
변수에 영향을 미치지 않습니다
@BrenBarn, 이런 종류의 코드 형식 지정 방법에 대한 정보가 담긴 링크를 알려주십시오. 나는 등등 강조하는 색깔을 얻지 않는다 ... 거기 교환기에있는 정력과 같은 몇몇 편집자는 있는가? – sanjay
문제가있는 [짧은 자체 포함 실행 가능한 예] (http://sscce.org/)를 제공하십시오. 이 코드를 실행하려고했지만'AttributeError : 'module'객체에 'start_parse'속성이 없습니다. – Kevin
Re : 코드 서식을 지정하는 가장 간단한 방법은 코드를 붙여넣고 강조 표시 한 다음 Ctrl-K를 누르는 것입니다. 이렇게하면 모든 행을 4 개의 공백만큼 들여 씁니다.이 행은 색상 강조 표시 등을 적용하기 위해 마크 업 시스템에 신호를 보냅니다. – Kevin