在 Python 中,面向对象编程主要有两个主题,就是类和类实例。
类与实例:
类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中所定义的对象的具体信息。类是抽象的,在使用的时候通常会找到这个类的一个具体的存在,使用这个具体的存在。一个类可以找到多个对象。
类(Class) 由3个部分构成
类的名称:类名
类的属性:一组数据
类的方法:允许对进行操作的方法 (行为)
1、定义类
例:定义类
定义类2、创建对象
python中,可以根据已经定义的类去创建出一个个对象,创建对象的格式为,对象名 = 类名()
例:创建对象
创建对象 运行结果利用一个变量接收创建的对象,实例对象可以调用类的方法,还可以为类设置属性。我们可以利用__init__()方法在创建实例对象时,就为对象指定属性。
3、__init__()方法
创建类时,可以定义一个特定的方法,名为__init__(),只要创建这个类的一个实例就会运行这个方法。可以向__init__()方法传递参数,这样创建对象时就可以把属性设置为你希望的值__init__()这个方法会在创建对象时完成初始化。
例:调用__init__()方法
调用__init__()方法 运行结果在没有调用__init__()方法的前提下,实例对象就默认拥有了2个属性wheelNum和color,原因是__init__()方法是在创建对象后,就立刻被默认调用了。
也可以在调用__init__()方法时传递参数,动态设置实例对象的属性。
例:调用__init()方法时传递参数
调用__init()方法时传递参数 运行结果__init__()方法,在创建一个对象时默认被调用,不需要手动调用
__init__(self)中,默认有1个参数名字为self,如果在创建对象时传递了2个实参,那么__init__(self)中出了self作为第一个形参外还需要2个形参,例如__init__(self,x,y)
__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
可以把self当做C++中类里面的this指针一样理解,就是对象自身的意思
某个对象调用其方法时,python解释器会把这个对象作为第一个参数传递给self,所以开发者只需要传递后面的参数即可
4、保护对象的属性
如果有一个对象,当需要对其进行修改属性时,有2种方法
对象名.属性名 = 数据 ---->直接修改
对象名.方法名() ---->间接修改
为了更好的保存属性安全,即不能随意修改,一般的处理方式为
将属性定义为私有属性
添加一个可以调用的方法,供调用
例:调用私有属性
调用私有属性 运行结果以__属性开头的属性为私有属性,不能通过实例对象直接调用,不支持修改和取值。要想取值和修改,必须调用实例对象的方法。
Python中没有像C++中public和private这些关键字来区别公有属性和私有属性。
它是以属性命名方式来区分,如果在属性名前面加了2个下划线'__',则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)
网友评论