_init__的功能:属性初始化
1、在对象创建的时候,自动调用
self: 当前对象,哪个对象调用这个方法了,self就是这个对象
私有化 其实也是一种封装
不能直接对外访问,通过两个步骤,间接对外访问
1、设置私有化 __属性
2、对外提供可访问的接口(方法) 获取和设置
对象是可变的,传递之后,修改属性了,影响原来的对象
·在python中方法名如果是__xxxx__()的,那么就有特殊的功能,因此叫做“魔法”方法
·当使用print输出对象的时候,只要自己定义了__str__(self)方法,那么就会打印从在这个方法中return的数据
·所谓的self,可以理解为自己
·可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思
·某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可
如果有一个对象,当需要对其进行修改属性时,有2种方法
·对象名.属性名=数据---->直接修改
·对象名.方法名() ---->间接修改
为了更好的保存属性安全,即不能随意修改,一般的处理方式为
·将属性定义为私有属性
·添加一个可以调用的方法,供调用
·Python中没有像C++中public和private这些关键字来区别公有属性和私有属性
·它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。