您的位置:首页 > 编程语言 > Python开发

【Python】self, __init__(未完)

2014-05-23 09:35 246 查看
为什么需要self?

Python的类的方法与普通函数的一个很明显的区别就是,类的方法必须额外的第一个参数self,但调用这个方法时不必为self赋值。

self指代的其实是对象本身,按照python的惯例,用self表示。

看下面的例子:



正常打印

>>> 

hello!



sayHi()去掉self后,报错。

为什么Python会给self赋值但我们却不必?

Python简明教程中说到,创建一个类MyClass, 并将其实例化得到了MyObject这个对象,

调用对象MyObject的方法MyObject.method(arg1, arg2)

在这个过程中Python会自动转为MyClass.method(MyObject, arg1. arg2)

see, 即使类的方法不需要任何参数,但这个方法还是需要定义self参数,虽然在实例化调用的时候不必理会它不用给它赋值。

注意:

self在Python里不是关键字,self指示的是当前对象的地址

__init__

__init__方法在类的实例被创建后立即调用,是Python里最接近C++构造函数的方法。

扮演的角色非常相似,既是第一个被定义的方法,也是第一个被调用的方法。

但不等价于构造函数,因为对象在调用__init__方法时,已经被构造出来了,我们已经有了一个对类的新实例的有效引用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: