Ниже config.py:питона глобального имя «коллекция» не определена даже я импортировал коллекции
from collections import OrderedDict
def test_config(fileName):
tp_dict = collections.OrderedDict()
with open("../../config/" + fileName, 'r') as myfile:
file_str = myfile.read().replace(' ', '').split('\n')
tp_list = []
for i, x in enumerate(file_str):
x = x.strip()
try:
key = x[:x.index(':')].strip()
value = x[x.index(':')+1:]
if key == 'testpoint':
pass
else:
tp_dict[key] = value.strip().split(',')
except ValueError,e:
pass
if i % 4 == 0 and i != 0:
tp_list.append(tp_dict.copy())
return tp_list
Я использую функцию в другом файл test.py:
import config
a = config.test_config('test.txt')
NameError: global name 'collections' is not defined
Но если я скопирую весь код из config.py в начало test.py, а затем воспользуюсь функцией, то у меня нет ошибки (см. Код ниже). Может ли кто-нибудь объяснить это мне, пожалуйста? Я так так смущен. Большое спасибо!
"""
This is test.py
"""
from collections import OrderedDict
def test_config(fileName):
tp_dict = collections.OrderedDict()
with open("../../config/" + fileName, 'r') as myfile:
file_str = myfile.read().replace(' ', '').split('\n')
tp_list = []
for i, x in enumerate(file_str):
x = x.strip()
try:
key = x[:x.index(':')].strip()
value = x[x.index(':')+1:]
if key == 'testpoint':
pass
else:
tp_dict[key] = value.strip().split(',')
except ValueError,e:
pass
if i % 4 == 0 and i != 0:
tp_list.append(tp_dict.copy())
return tp_list
a = test_config('test.txt')
Вы правы. Но почему он не жалуется на ошибку в test.py? – Catherine