我有一個玩家類和一個武器類。武器類有一個 reload 方法,用于檢查玩家的庫存屬性。玩家類有一個武器屬性,用于保存當前的武器物件,從中呼叫 reload 方法。由于玩家可以更換武器,我想在沒有武器物件的情況下實體化玩家物件,但可以訪問開發中的武器物件智能感知。這可能嗎?
簡而言之,我希望能夠從我的玩家類中看到我的武器類的方法,而無需創建實體。
uj5u.com熱心網友回復:
為什么不使用玩家沒有持有武器時持有的虛擬武器物件?它可以是一種隱形武器,讓您可以在這種情況下訪問任何您想要的東西。
如果它會干擾徒手狀態,您可以讓玩家在需要時使用徒手攻擊影片。
uj5u.com熱心網友回復:
您可以使用__dict__, 來獲取類的所有屬性:
class Player:
def __init__(self, name):
self.name = name
self.weapon = None
def weaponsAvailable(self):
print([w for w, _ in Weapon.__dict__.items() if not w.startswith('__')])
class Weapon:
def gun(self):
print('gun')
def knife(self):
print('knife')
p = Player('Player1')
p.weaponsAvailable()
出去:
['gun', 'knife']
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/357434.html
