python自我

2 python class self

这以所需的方式工作:

class d:
    def __init__(self,arg):
        self.a = arg
    def p(self):
        print "a= ",self.a

x = d(1)
y = d(2)
x.p()
y.p()
Run Code Online (Sandbox Code Playgroud)

生产

a=  1
a=  2
Run Code Online (Sandbox Code Playgroud)

我已经尝试消除"自我"并使用全局声明 __init__

class d:
    def __init__(self,arg):
        global a
        a = arg
    def p(self):
        print "a= ",a

x = d(1)
y = d(2)
x.p()
y.p()
Run Code Online (Sandbox Code Playgroud)

屈服,不受欢迎:

a=  2
a=  2
Run Code Online (Sandbox Code Playgroud)

有没有办法写它而不必使用"自我"?

Ach*_*him 6

"自我"是Python的工作方式.所以答案是:不!如果你想剪头发:你不必使用"自我".任何其他名称也会.;-)

  • @mike:是的,完全停止,新的段落.你几乎要求Python等同于"我怎样才能避免使用C和C++中的预处理器". (4认同)
  • 从好的方面来看,你不会想要将`m_`添加到你的成员变量中,只是为了澄清在方法中访问的命名空间:) (3认同)
  • "明确比隐含更好" (2认同)