大家好,我对使用Python进行分类有一个快速的问题。我有一个脚本,可提取区域中的房屋清单并收集
每个房子的数据并将其保存在文件中。

为简便起见,在示例代码中,我们假定已经通过声明data个对象的list来检索House,并且save_file()函数仅打印数据:

app.py文件是:

from save_data import save_file

class House:
    def __init__(self, year_built, sqft):
        self.year_built = year_built
        self.sqft = sqft


house_one = House('2010', '2340')
house_two = House('2014', '4340')

house_list = [house_one, house_two]

save_file(house_list)


save_data.py文件是:

def save_file(final_list):
    for house in final_list:
        print(house.year_built)
        print(house.sqft)


这很完美,但是我想知道当我在IDE(PyCharm)中编辑save_data.py文件时,键入house.时它不会加载House类变量,因为app.py尚未运行。例如,如果我在house文件中键入.,然后键入app.py,它将显示类变量。

我实际的House类有25个以上的变量,并且很难记住所有名称,如果我只在house.文件中键入save_data.py,那么IDE可以加载这些名称将非常方便。

无论如何,我可以将House类从app.py文件导入到save_data.py文件和/或在类型house的代码for house in final_list中声明House以获得此功能吗?

最佳答案

可以通过注释中提到的类型提示来实现:

from typing import List
from app import House


def save_file(final_list: List[House]):
    for house in final_list:
        print(house.year_built)
        print(house.sqft)

关于python - 有没有办法在不同模块之间传递Python中的Class对象并保留 namespace ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58225047/

10-12 03:03