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

is it possible not to use “self” in a class?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Python: How to avoid explicit 'self'?

在python类中,如果需要引用类成员变量,我需要有一个self。在它之前。这是一个问题,我可以不使用,但参考类成员?

谢谢。箱子


不。

1
2
3
4
>>> import this
...
Explicit is better than implicit.
...

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

1
2
3
4
5
6
7
8
9
10
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。尽管这可能不是你想要/需要的。(类变量绑定到类,而不是对象。这意味着它们在该类的所有实例之间共享。btw,在上面的示例中使用self.x将屏蔽类变量。)


显式地编写self实际上是有帮助的。这有助于提高可读性——这是Python的优势之一。我个人认为这很有用。

C++中类似的一个论点是,当使用EDCOX1(5)时,只是为了节省EDOCX1×6的命名空间的重复前缀。虽然这可以节省时间,但不应该这样做。

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


我不知道如何访问对象属性,就好像它们是全局的一样,而不显式地解包或进行其他操作。

如果你不喜欢自己打字,你可以随心所欲地给它命名,比如一个字母的名字。


出于某种原因,python引用了self-explicit。Python项目的主要目标是可读性和简单性。"一个正确的方法是有一个自我论证和一个明确的参考。

不要质疑仁慈的人…