一点背景 - 我正在玩pygame,并希望创建一个包含所有Mob类实例位置的字典。
我看待它的方式:
human = Mob(pos)
mob_positions = {human : pos}
因此,每次拨打Mob.__init__()
时,我都希望将pos
添加到mob_positions
字典。
如何访问当前实例变量名称?或者这是非常错误的做法?
答案 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