相关疑难解决方法(0)

自我的目的是什么?

selfPython 中这个词的目的是什么?我理解它指的是从该类创建的特定对象,但我不明白为什么它明确需要作为参数添加到每个函数.为了说明,在Ruby中我可以这样做:

class myClass
    def myFunc(name)
        @name = name
    end
end
Run Code Online (Sandbox Code Playgroud)

我很容易理解.但是在Python中我需要包括self:

class myClass:
    def myFunc(self, name):
        self.name = name
Run Code Online (Sandbox Code Playgroud)

谁能跟我说说这个?这不是我在(无可否认的有限)经历中遇到的事情.

python oop class self

1061
推荐指数
17
解决办法
81万
查看次数

什么时候不应该在 Python 中使用 self 约定?

我最近刚刚了解了selfPython 中的约定,并开始编写更复杂的代码。然而,一位经验丰富的程序员和我的朋友告诉我,self在类方法中使用每个变量是浪费的。

我知道这self会导致变量归属于该类。那么,除非有需要,避免使用是不是一种好的做法self

下面是一些从 API 获取英雄联盟信息并将每个变量存储在其中的代码,self.var_name以说明我如何(也许不必要)使用self.

async def getChampInfo(self, *args):
    """ Return play, ban, and win rate for a champ """
    self.uri = "http://api.champion.gg/v2/champions/{}?api_key={}"
    self.champ = " ".join(args)
    self.champID = lu.getChampID(self.champ)
    self.res = requests.get(self.uri.format(
        self.champID, League.champion_gg_api_key)).json()
    self.role = self.res[0]["role"]
    self.role_rate = self.res[0]["percentRolePlayed"]
    self.play_rate = self.res[0]["playRate"]
    self.win_rate = self.res[0]["winRate"]
    self.ban_rate = self.res[0]["banRate"]
Run Code Online (Sandbox Code Playgroud)

python convention styles memory-management self

2
推荐指数
1
解决办法
1301
查看次数

标签 统计

python ×2

self ×2

class ×1

convention ×1

memory-management ×1

oop ×1

styles ×1