2 回答

TA貢獻1784條經驗 獲得超2個贊
是的,您可以在單獨的文件中實例化對象。根據描述,您使用的兩種方式也是正確的。不幸的是,我沒有看到你寫的完整代碼,所以不能確切地說出哪里出了問題。以下是如何實現目標的兩個示例:
使用另一個文件中的對象:
dining_hall.py
dining_hall = Room("Dining Hall")
main.py
from dining_hall import dining_hall
dining_hall.set_description("A large room with ornate golden decorations on each wall")
或者你可以使用特殊的實例化函數(更好地實現類似單例的東西):
dining_hall.py
dining_hall_object = None
def get_dining_hall():
global dining_hall_object
if dining_hall_object is None:
dining_hall_object = Room("Dining Hall")
return dining_hall_object
main.py
from dining_hall import get_dining_hall
dining_hall = get_dining_hall()
dining_hall.set_description("A large room with ornate golden decorations on each wall")

TA貢獻1801條經驗 獲得超16個贊
一般來說,您會希望在“單獨的”文件中定義/實現您的類,然后在主腳本中初始化對象實例,該腳本可能稱為也可能不稱為 main。
room.py
class Room:
def __init__(self, room_name):
...
main.py(確保包含 room.py 的文件夾在您的路徑中)
from room import Room
dining_hall = Room("Dining Hall")
...
也許您可以解釋為什么要在另一個腳本中進行初始化——例如,您可能希望“Dining Hall”已經知道它的描述,或者您可能希望強制“Dining Hall”是唯一的?有針對此類問題的設計模式,但我需要更多地了解您要實現的目標。
添加回答
舉報