访问类中的实例变量名称

时间:2012-08-11 13:29:10

标签: python

一点背景 - 我正在玩pygame,并希望创建一个包含所有Mob类实例位置的字典。

我看待它的方式:

human = Mob(pos)
mob_positions = {human : pos}

因此,每次拨打Mob.__init__()时,我都希望将pos添加到mob_positions字典。

如何访问当前实例变量名称?或者这是非常错误的做法?

3 个答案:

答案 0 :(得分:2)

任何绑定方法(包括__init__)至少需要一个参数,通常名为self,这正是您所描述的。

class Mob(object):
    def __init__(self, pos):
        mob_positions[self] = pos

答案 1 :(得分:2)

您有几种方法可以解决问题。其中之一是将mob_positions字典作为参数传递给__init __。

class Mob(object):
    def __init__(self, pos, field=None):
        ...
        if field:
            field[self] = pos

这样的符号可以让你把怪物放在初始化上(取决于你对小怪的做法)。

答案 2 :(得分:1)

当前实例变量只是函数的第一个参数。按照惯例,它被命名为self

这就是我做事的方式。

class Mob(object):
    def __init__(self, pos, mob_positions):
        self.pos = pos
        mob_positions[self] = pos