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条经验 获得超15个赞
一般来说,您会希望在“单独的”文件中定义/实现您的类,然后在主脚本中初始化对象实例,该脚本可能称为也可能不称为 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”是唯一的?有针对此类问题的设计模式,但我需要更多地了解您要实现的目标。
添加回答
举报