是否可以在多个文件中使用同一个对象?

我是 Python 编码的新手,我正在尝试使用对象创建游戏。在main.py中,我使用名为Room的类创建了代表特定房间的对象。我可以在单独的文件中实例化这些对象,然后在main.py中使用它们吗?如果可能的话,我该怎么做?

我尝试简单地在文件中创建一个对象并在main.py中使用它,但它没有用。我还尝试在第二个文件中创建一个创建房间对象的方法,然后在main.py中调用它,但这也没有用。我也找不到任何关于在多个文件中使用一个对象的文档。

这是一个房间对象的例子:

dining_hall = Room("Dining Hall")
dining_hall.set_description("A large room with ornate golden decorations on each wall")

这是房间类的构造函数:

def __init__(self, room_name):
    self.name = room_name
    self.description = None


米脂
浏览 97回答 2
2回答

一只斗牛犬

是的,您可以在单独的文件中实例化对象。根据描述,您使用的两种方式也是正确的。不幸的是,我没有看到你写的完整代码,所以不能确切地说出哪里出了问题。以下是如何实现目标的两个示例:使用另一个文件中的对象:dining_hall.pydining_hall = Room("Dining Hall")main.pyfrom dining_hall import dining_halldining_hall.set_description("A large room with ornate golden decorations on each wall")或者你可以使用特殊的实例化函数(更好地实现类似单例的东西):dining_hall.pydining_hall_object = Nonedef get_dining_hall():    global dining_hall_object    if dining_hall_object is None:        dining_hall_object = Room("Dining Hall")    return dining_hall_objectmain.pyfrom dining_hall import get_dining_halldining_hall = get_dining_hall()dining_hall.set_description("A large room with ornate golden decorations on each wall")

侃侃尔雅

一般来说,您会希望在“单独的”文件中定义/实现您的类,然后在主脚本中初始化对象实例,该脚本可能称为也可能不称为 main。room.pyclass Room:  def __init__(self, room_name):    ...main.py(确保包含 room.py 的文件夹在您的路径中)from room import Roomdining_hall = Room("Dining Hall")...也许您可以解释为什么要在另一个脚本中进行初始化——例如,您可能希望“Dining Hall”已经知道它的描述,或者您可能希望强制“Dining Hall”是唯一的?有针对此类问题的设计模式,但我需要更多地了解您要实现的目标。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python