我有一个关于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