gpt4 book ai didi

python - 在实例方法中将 "self"本地绑定(bind)到另一个变量可以接受吗?

转载 作者:行者123 更新时间:2023-11-30 22:51:36 25 4
gpt4 key购买 nike

根据最佳实践标准,将实例方法中的 self 本地绑定(bind)到另一个变量是否可以接受?它很方便,尤其是在测试该方法时。我还想知道如果在循环内检索实例属性,这种方法是否更有效。这是一个例子

class C:
def __init__(self):
self.a = "some attribute"

def some_function(self):
c = self
for _ in range(10):
print(c.a)

最佳答案

这通常没有任何好处,它实际上是反直觉的,因为它会让读者混淆你的意图(self 可以说是 Python 中最容易识别的名称)。

这样做的唯一好处(尽管有点不同)是如果您想通过将属性分配给名称( noted as a performance tip in the Python Wiki )来消除对 self 的属性查找:

def some_function(self):
# we assign 'self.a' to 'a'
# to avoid looking for 'a' in 'self' for every iteration
a = self.a
for _ in range(10):
print(a)

这只会稍微降低执行速度,从而有所帮助。除此之外,像这样重命名 self 确实没有任何好处。

关于python - 在实例方法中将 "self"本地绑定(bind)到另一个变量可以接受吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38955807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com