你能用python __init__帮我吗?

时间:2014-11-21 04:11:15

标签: python

在python中,我们可以这样做,

class TT(object):
    def __init__(self):
        self.f='ff'
x=TT()
print x.f

如果我将代码更改为:

class TT(object):
    def__init__(uu):
        uu.f='ff'
x=TT()
print x.f

我会得到相同的结果,都是'ff''uu'这里只是'self'的别名吗?还是其他任何区别?我应该什么时候使用它?

感谢。

2 个答案:

答案 0 :(得分:4)

没有设置在石头上的对象变量的名称:您几乎可以使用任何名称来识别它。但是,为了轻松区分对象变量和其他传递的变量,通常采用的约定是命名变量" self",以使其对于检查代码的其他人更具可读性。

你可以在技术上使用你想要的任何名称,但在编程世界中它被认为是不好的做法。

答案 1 :(得分:2)

它不只是__init__,而是所有Python的方法:self仅仅是一种约定。方法中的第一个变量将是对象本身,并且它与您的命名方式无关,selfuubig_honchothis;但是如果你使用self以外的任何东西,阅读你的代码的人可能会被混淆一秒或一千。

这与许多其他具有当前对象的隐式变量的OO语言形成对比,通常是self(例如Ruby)或this(例如JavaScript)。