亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

是否可以在多個文件中使用同一個對象?

是否可以在多個文件中使用同一個對象?

米脂 2023-04-18 11:05:28
我是 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
查看完整描述

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")



查看完整回答
反對 回復 2023-04-18
?
侃侃爾雅

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”是唯一的?有針對此類問題的設計模式,但我需要更多地了解您要實現的目標。


查看完整回答
反對 回復 2023-04-18
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號