从另一个python文件导入对象作为列表

时间:2019-02-17 01:17:46

标签: python import pycharm

我有一个文件(Crop_Library.py),其中包含具有各种属性(所有属性均相同)的对象的列表:

from Crop import Crop

Basil = Crop("Basil", 3, 0, 5, 10, 5)
Lettuce = Crop("Lettuce", 3, 4, 5, 10, 7)
Kale = Crop("Kale", 1, 2, 3, 4, 5)

我希望我的GUI程序(GUI.py)读取Crop_Library.py中的所有对象并将它们存储在列表中,以便我的GUI可以在组合框中列出它们(因此也需要将它们转换为字符串) ,或仅读取crop.name字符串,这是所有属性的第一个属性。

目前,导入是个问题。但是,作为一个FYI,我希望将来在我的GUI的另一部分中添加编辑功能,以便可以创建/编辑/删除对象。如果这是一种更好的方法,我愿意使用json文件而不是python文件来存储这些对象-我是python的新手,并且迷路了,因此可以接受任何指导。

谢谢!

2 个答案:

答案 0 :(得分:0)

有一些解决方案:

  1. 创建一个新的.txt文件,存储列表并从中读取

  2. 创建从该文件读取的代码

答案 1 :(得分:0)

如果使用JSON,则读取的内容不会是Crop对象。读取数据后,您可以将输入转换为Crop对象。

这是在导入所拥有内容时的清单:

from Crop import Crop

Basil = Crop("Basil", 3, 0, 5, 10, 5)
Lettuce = Crop("Lettuce", 3, 4, 5, 10, 7)
Kale = Crop("Kale", 1, 2, 3, 4, 5)

crops = [ Basil, Lettuce, Kale ]

或更简洁地说,如果不需要对象名称,则不需要...

from Crop import Crop

crops = [
    Crop("Basil", 3, 0, 5, 10, 5),
    Crop("Lettuce", 3, 4, 5, 10, 7),
    Crop("Kale", 1, 2, 3, 4, 5,)
]

顺便说一句,根据正确的Python命名约定,您的Crop对象名称应为小写。