是否有可能不在课堂上使用“自我”?

时间:2010-11-11 09:17:04

标签: python

  

可能重复:
  Python: How to avoid explicit 'self'?

在python类中,如果我需要引用类成员变量,我需要有一个自我。在它之前。这是anonying,我可以不使用它但引用类成员吗?

感谢。 滨

5 个答案:

答案 0 :(得分:6)

没有

>>> import this
...
Explicit is better than implicit.
...

答案 1 :(得分:3)

要引用类变量,您不需要显式self。您需要它来引用对象(类实例)变量。要引用类变量,只需使用该类名,如下所示:

class C:
    x = 1
    def set(self, x):
        C.x = x

print C.x
a = C()
a.set(2)
print a.x
print C.x

第一次打印会为您提供1,其他人则为2。 虽然可能不是您想要/需要的。 (类变量绑定到类,而不是对象。这意味着它们在该类的所有实例之间共享。顺便说一句,在上面的示例中使用self.x将掩盖类变量。)

答案 2 :(得分:1)

我不知道一种访问对象属性的方法,就好像它们是全局变量而不是明确地解包它或其他东西。

如果您不喜欢输入self,可以根据需要为其命名,例如一个字母的名称。

答案 3 :(得分:1)

明确地写self实际上是有帮助的。这鼓励了可读性 - 这是Python的优势之一。我个人认为它非常有用。

C ++中的类似参数是,当您使用using namespace std时,只是为了保存std命名空间的重复前缀。虽然这可以节省时间,但不应该这样做。

所以习惯写self。说真的,需要多长时间!

答案 4 :(得分:0)

Python出于某种原因引用了自我显式。 Python项目的主要目标是可读性和简单性。 “这样做的一种正确方法”是拥有自我论证和明确的参考。

不要质疑the benevolent one ...