簡體   English   中英

類中的訪問實例變量名稱

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM