在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'
的别名吗?还是其他任何区别?我应该什么时候使用它?
感谢。
答案 0 :(得分:4)
没有设置在石头上的对象变量的名称:您几乎可以使用任何名称来识别它。但是,为了轻松区分对象变量和其他传递的变量,通常采用的约定是命名变量" self",以使其对于检查代码的其他人更具可读性。
你可以在技术上使用你想要的任何名称,但在编程世界中它被认为是不好的做法。
答案 1 :(得分:2)
它不只是__init__
,而是所有Python的方法:self
仅仅是一种约定。方法中的第一个变量将是对象本身,并且它与您的命名方式无关,self
或uu
或big_honcho
或this
;但是如果你使用self
以外的任何东西,阅读你的代码的人可能会被混淆一秒或一千。
这与许多其他具有当前对象的隐式变量的OO语言形成对比,通常是self
(例如Ruby)或this
(例如JavaScript)。