我想知道如何獲得在文件之間分割的類來編輯我的主遊戲循環中的變量。Python:多文件類
例如,這裏是我試圖完成的一個非常基本的版本。
Player類:
class Player():
def __init__(self, name, field):
self.name = name
self.field = field
self.health = 500
def summon(self,card):
self.field.summon(card)
Field類:
class Field():
def __init__(self):
self.playing_field = []
def summon(self, card):
self.playing_field.append(card)
player1.health = 400
我的遊戲文件:
from Player import Player
from Field import Field
player1_field = Field()
player1 = Player("Steve", player1_field)
test_card = ["Test Card", 300] # Name, Power
player1.summon(test_card)
這就產生了一個錯誤:
NameError: global name 'player1' is not defined
我已經在我的遊戲中得到了一點,我需要在文件之間分割類,但是我在使它們彼此交談時遇到了麻煩。我想知道如何聲明我的播放器對象,以便可以從我的所有類中訪問它們,這正在變成一個長長的列表。
如果你需要我編輯這個問題,請這麼說。提前致謝!
這不是好的課堂設計。您已將'Field'永久綁定到'Player'的單個實例。爲什麼不讓'Field'把玩家當成一個變量,例如'Field.add_player'? – nneonneo
你的問題不是導入的概念,而是關於合理的面向對象設計和實現的問題。你正在編程一些東西,希望它不會對你正在做什麼有合理的想法而工作。不是試圖理解你想做什麼,而是在類方法中設置player1.health = 400是毫無意義的廢話。 –
我在編程時絕對沒有想到,編程方面我很新,所以我很抱歉,如果這看起來浪費你的時間。我的目標是擁有2+球員,全部擁有Field類的關聯實例和UsedCard類等。我想要能夠調用Player實例的方法,例如player1變量。健康的事情只是爲了證明我不知道如何調用player1的任何方法或setter方法(我認爲這就是名字)。我的真正用處是我有一個Input Handler類,它需要調用方法player1或2 –