如何使用Python 3 PyCharm将列表从main.py导入task.py?

问题描述 投票:0回答:2

我如何在task.py中使用main.py中的列表?下面的代码。

main.py:

import task.py
list_list = ["test1","test2"]
task.print_func()

task.py:

from main import list_list
def print_func():
     for x in list_list:
          print(x)

以这种方式,我收到以下错误:

[AttributeError:模块'任务'没有属性'print_func']

python python-3.x list import pycharm
2个回答
1
投票
程序流程大致如下:

您致电python main.py

    import task被执行,以从print_func加载task.py
  • task.py被执行,直接返回main.py以检索list_list...
  • 要解决您的问题,您可以执行以下操作:
  • main.py:

    import task list_list = ["test1","test2"] # Only run this, if main.py is run directly, not in import if __name__ == "__main__": task.print_func()

    task.py :(无更改)

    from main import list_list
    def print_func():
         for x in list_list:
              print(x)
    

    此更改允许task.py导入list_list,而无需尝试执行当时无法定义的task.print_func(因为其定义取决于list_list)。

    一些一般要点:

    我不明白为什么要从main导入list_list以便在task.print_func中使用-我认为将列表作为参数传递会更好。

    1. 要在其他位置导入的python文件中,在缩进级别0上执行尽可能少的代码。阅读例如此处:What does if __name__ == "__main__": do?了解更多信息。
  • 考虑所有因素,我将按照以下步骤进行:
  • main.py

    import task if __name__ == "__main__": list_list = ["test1","test2"] task.print_func(list_list)

    task.py:

    def print_func(list_list):
         for x in list_list:
              print(x)
    

  • 0
    投票
    main.py

    import task list_list = ["test1","test2"] if __name__=="__main__": task.print_func()

    task.py

    from main import list_list
    
    def print_func():
         for x in list_list:
              print(x)
    
    © www.soinside.com 2019 - 2024. All rights reserved.