簡體   English   中英

有沒有辦法在不同模塊之間傳遞 Python 中的 Class 對象並保留命名空間?

[英]Is there a way to pass Class objects in Python between different modules and retain namespace?

大家好,我有一個關於 Python 分類的快速問題。 我有一個腳本,它可以提取一個區域中的房屋列表並收集每個房屋的數據並將其保存在一個文件中。

為簡潔起見,在示例代碼中,我們假設我們已經通過聲明House對象list檢索了data ,並且save_file() function 僅打印數據:

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 class 變量,因為app.py尚未運行。 例如,如果我鍵入house后跟. app.py文件中,它將顯示 class 變量。

我實際的House class 有超過 25 個變量,而且很難記住所有的名字,如果我只是輸入house. save_data.py文件中。

無論如何我可以將 House class 從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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM