【问题标题】:Error when importing variables from another file从另一个文件导入变量时出错
【发布时间】:2020-07-19 10:19:17
【问题描述】:

我正在将“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))]

在“main”上导入“testmod”:

import testmod as tmod
tmod.insertcsv()
print(apple)
print(cal)

【问题讨论】:

    标签: python csv variables import module


    【解决方案1】:

    看看这个。

    '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
    

    在“main”上导入“testmod”:

    import testmod as tmod
    year,apple,orange = tmod.insertcsv()
    cal = tmod.calfruits()
    print(apple)
    print(cal)
    

    【讨论】:

      【解决方案2】:

      因为 insertcsv() 返回一个名为 apple 的局部变量,但您需要提供一个全局变量以在 print 语句中使用。既然来了,给你一些建议: 使用 this 而不是三个单独的 return 语句

          return year, apple, orange
      

      而不是通过说来检索值

          year, apple, orange = tmod.insertcsv()
      

      这样就可以了

      【讨论】:

        【解决方案3】:

        返回一行中的所有值,因为一旦它返回一个值,那么你的函数将被终止。

        使用: 回归年,苹果,橙子 安装: 回归年 返回苹果 返回橙色

        【讨论】:

          猜你喜欢
          • 2013-06-19
          • 1970-01-01
          • 2021-04-17
          • 1970-01-01
          • 1970-01-01
          • 2021-06-22
          • 1970-01-01
          相关资源
          最近更新 更多