Я импортирую файл 'testmod' в мой 'основной' файл и обнаружил следующую ошибку:
NameError: name 'apple' is not defined
Как убедиться, что все переменные в файле 'testmod', такие как 'year', 'banana', 'apple', доступны для чтения в файле 'main'
Sampledata.csv :
Year,Apple,Orange,,,
2011,45,67,,,
2012,48,43,,,
2013,58,89,,,
Файл 'testmod':
import csv
def insertcsv():
openfile = open('sampledata.csv')
csvreader = csv.reader(openfile)
next(csvreader)
year=[]
apple=[]
orange=[]
for row in csvreader:
year.append(row)
apple.append(row)
orange.append(row)
return year
return apple
return orange
def calfruits:
cal = [apple[i] + orange[i] for i in range(len(apple))]
Импортируем «testmod» на «main»:
import testmod as tmod
tmod.insertcsv()
print(apple)
print(cal)
3 ответа
Проверь это.
файл 'testmod':
import csv
def insertcsv():
openfile = open('sampledata.csv')
csvreader = csv.reader(openfile)
next(csvreader)
year=[]
apple=[]
orange=[]
for row in csvreader:
year.append(row)
apple.append(row)
orange.append(row)
return year,apple,orange # return all values in a single line.
def calfruits():
cal = [apple[i] + orange[i] for i in range(len(apple))]
return cal
Импорт 'testmod' на 'main':
import testmod as tmod
year,apple,orange = tmod.insertcsv()
cal = tmod.calfruits()
print(apple)
print(cal)
Потому что insertcsv () возвращает локальную переменную с именем apple, но вам нужно предоставить глобальную переменную для использования в операторе печати. Поскольку мы здесь, у вас есть несколько предложений: вместо трех отдельных операторов return используйте это
return year, apple, orange
Чем получить значения, сказав
year, apple, orange = tmod.insertcsv()
Это сделало бы это
Верните все значения в строке, потому что, как только он вернет значение, ваша функция будет прервана.
Использование: год возврата, яблоко, апельсин Вместо: год возврата, яблоко возврата, апельсин
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.