根据最佳实践标准,将实例方法中的 self 本地绑定到另一个变量是否可以接受?它派上用场,特别是在测试方法时。我还想知道如果在循环中检索实例属性,这种方法是否更有效。这是一个例子
class C:
def __init__(self):
self.a = "some attribute"
def some_function(self):
c = self
for _ in range(10):
print(c.a)
答案 0 :(得分:3)
这通常没有任何好处,它实际上是反直觉的,因为它使读者对你的意图感到困惑(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
的好处。