我有一個關於Python中的類變量的問題。獨立類訪問類變量Python2.7.1
我想爲一個RPG編寫一個簡單的攻擊類,並且我需要在這個類中訪問我的Weapon類和我的字符類的變量,但是所有三個都沒有彼此的繼承關係。由於所有線程都是繼承,我無法在網上找到幫助。
下面是每個類的代碼示例:
class Character(pygame.sprite.Sprite):
def __init__(self, hp, image, speed, x, y):
super(Character, self).__init__()
self.image = image
self.rect = self.image.get_rect().move(x, y) #initial placement
self.hp = hp
class Weapon(Item): #Parent class item is a sprite class
def __init__(self, name, value, image, x, y, dmg):
super(Weapon, self).__init__(name, value, image, x, y)
self.dmg = dmg
class Attack(object):
def __init__(self, Weapon, Character):
self.Weapon = Weapon
self.Character = Character
self.Character.hp -= self.Weapon.dmg
UPDATE #####縮進整流
class Attack(object):
def __init__(self, Weapon, Character):
self.Weapon = Weapon
self.Character = Character
self.Character.hp -= self.Weapon.dmg
當我嘗試運行我的程序,我得到以下錯誤:
File "classes.py", line 136, in <module>
class Attack(object):
File "classes.py", line 141, in Attack
self.Character.hp -= self.Weapon.dmg
NameError: name 'self' is not defined
關於如何從我的Attack類中的Character類訪問hp變量的任何想法?最終,我還需要訪問Attack類中的Weapon類的dmg變量。
FWIW,我認爲沒有太多的關注讓Attack成爲一門課。爲什麼不只是有一個攻擊()函數? –
我只是想知道這個...我應該更擅長類人物,物品,庫存等類......使用Weapon類和另一個角色變量的Character類中的攻擊方法是可行和容易的使用。我會試試看。 – Sorade
刪除縮進錯誤不是一個好習慣。想一想看你的問題的人,現在他們無法理解它。 – cromod