[英]Access instance variable name within class
有一點背景-我正在玩pygame,並想創建一個包含所有Mob類實例位置的字典。
我的看法:
human = Mob(pos)
mob_positions = {human : pos}
因此,每次調用Mob.__init__()
我都想在mob_positions
字典中添加一個pos
。
如何訪問當前實例變量名稱? 還是極端錯誤的方法?
包括__init__
在內的任何綁定方法都至少需要一個參數,通常稱為self
,這正是您所描述的。
class Mob(object):
def __init__(self, pos):
mob_positions[self] = pos
您有幾種解決問題的方法。 其中之一是將mob_positions字典作為參數傳遞給__init__。
class Mob(object):
def __init__(self, pos, field=None):
...
if field:
field[self] = pos
這種表示法使您可以將生物置於初始化狀態(取決於您對生物的處理方式)。
當前實例變量只是該函數的第一個參數。 按照慣例,它被稱為self
。
這就是我要做的事情。
class Mob(object):
def __init__(self, pos, mob_positions):
self.pos = pos
mob_positions[self] = pos
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.