Python学习之面向对象

面向对象的理解

面向对象是一种设计思想
1、符合人们的思考习惯
2、把执行者变成指挥者
3、简化功能,把复杂的事情简单化

想完成一件事,找具有这样功能的对象
如果能找到,调用这个对象的功能,完成这个事
如果找不到,创建具有这样功能的对象,再调用完成这个事

类和对象

类是对事物的描述,是抽象的。
对象是类的具体体现。
类对事物的描述:属性(名词)和行为(动词)

类的构成

类的名称:类名
类的属性:一组数据 属性、变量
类的方法:允许对进行操作的方法 (行为) 方法

拥有相同(或者类似)属性和行为的对象都可以抽像出一个类

对象

python中,可以根据已经定义的类去创建出一个个对象
创建对象的格式为:

对象名 = 类名()

  • 当创建一个对象时,就是用一个模子,来制造一个实物

“魔法”方法

在python中,形如__方法名__()的称为魔法方法

  • 魔法方法都有特殊的功能,一般自动调用

__init__()方法

1、__init__()方法,在创建一个对象时默认被调用,不需要手动调用
2、__init__(self)中的self参数,不需要开发者传递,python解释器会自动把当前的对象引用传递进去
3、如果在创建__init__(self)对象时传递了2个实参,那么self作为第一个形参外还需要2个形参,例如__init__(self,x,y)

__str__()方法

在对象转字符串时调用(如print()),将其返回值作为转字符串的结果

__del__()方法

创建对象后,python解释器默认调用__init__()方法;
当删除一个对象时,python解释器也会默认调用一个方法,这个方法为__del__()方法

私有属性

如果有一个对象,当需要对其进行修改属性时,有2种方法

1、对象名.属性名 = 数据 —->直接修改
2、对象名.方法名() —->间接修改

为了更好的保存属性安全,即不能随意修改,一般的处理方式为

将属性定义为私有属性,添加一个可以调用的方法,供调用

Python中没有像C++中public和private这些关键字来区别公有属性和私有属性,它是以属性命名方式来区分。

如果在属性名前面加了2个下划线’__’,则表明该属性是私有属性,否则为公有属性(方法也是一样,方法名前面加了2个下划线的话表示该方法是私有的,否则为公有的)。

1、将属性私有化: “__属性名” 间接修改
2、对外提供可访问的方式: 获取(get)和设置(set) 根据需要提供也可以不提供

私有化也是一种封装,只能在类的内部访问,出了类就不能访问了

猜你喜欢

转载自blog.csdn.net/op0912036/article/details/81747580