![](/img/trans.png)
[英]What is the most appropriate way to pass objects between modules in python?
[英]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.