2 回答

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊
是的,您可以在單獨(dú)的文件中實(shí)例化對(duì)象。根據(jù)描述,您使用的兩種方式也是正確的。不幸的是,我沒(méi)有看到你寫(xiě)的完整代碼,所以不能確切地說(shuō)出哪里出了問(wèn)題。以下是如何實(shí)現(xiàn)目標(biāo)的兩個(gè)示例:
使用另一個(gè)文件中的對(duì)象:
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")
或者你可以使用特殊的實(shí)例化函數(shù)(更好地實(shí)現(xiàn)類(lèi)似單例的東西):
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貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超16個(gè)贊
一般來(lái)說(shuō),您會(huì)希望在“單獨(dú)的”文件中定義/實(shí)現(xiàn)您的類(lèi),然后在主腳本中初始化對(duì)象實(shí)例,該腳本可能稱為也可能不稱為 main。
room.py
class Room:
def __init__(self, room_name):
...
main.py(確保包含 room.py 的文件夾在您的路徑中)
from room import Room
dining_hall = Room("Dining Hall")
...
也許您可以解釋為什么要在另一個(gè)腳本中進(jìn)行初始化——例如,您可能希望“Dining Hall”已經(jīng)知道它的描述,或者您可能希望強(qiáng)制“Dining Hall”是唯一的?有針對(duì)此類(lèi)問(wèn)題的設(shè)計(jì)模式,但我需要更多地了解您要實(shí)現(xiàn)的目標(biāo)。
添加回答
舉報(bào)