Python学习-day6

一、面向对象编程

      面向对象编程——Object Oriented Programming,简称OOP,是一种程序设计思想。OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数。面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行。为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度。而面向对象的程序设计把计算机程序视为一组对象的集合,而每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程序的执行就是一系列消息在各个对象之间传递。

     面向对象的最主要目的是提高程序的重复使用性。

二、类和实例

      面向对象最重要的概念就是类(Class)和实例(Instance),类是具有相同属性和行为的一组对象的集合。在Python中,类通过 class 关键字定义,以 Person 为例,定义一个Person类

1  class Person(object):
2      pass

 Python 中习惯将类名首字母大写,紧接着是(object),表示该类是从哪个类继承下来的。事物的属性在类中用变量表示,事物的行为和动作在类中用方法即函数表示。

1 class Person(object):
2      def __init__(self,name,gender,birth):
3          self.name = name
4          self.gender = gender
5          self.birth = birth
6      def tell(self):
7          print('this is the informtion of %s '%self.name)

      创建Person 类时,可以为Person类添加一个特殊的__init__()方法,当创建实例时,__init__()方法被自动调用,我们就能在此为每个实例都加上统一的属性。__init__()方法的第一个参数必须是self,后面的参数可以自己定义。类中函数的第一个参数必须是self,self指向所创建的实例。self.<变量名> 称为实例变量,可在类的任何方法中直接应用。

       对象是实际的实体,每一个对象都是类的一个具体实例。创建类的实例格式:

<变量> = <类名>([参数],....)创建实例时,必须提供除self以外的参数。

1 p1 = Person('alex','M',20),
2 p2 = Person('Rose','F',18)

除了接收__init__方法中指定的属性,还可以给实例增加其他属性

1 p1 = Person('alex','M',20)
2 p1.job = 'teacher'
3 print('the job of p1 is %s '%p1.job)

运行结果:

the job of p1 is teacher 

对象方法调用:<对象名>.<方法名>.(<实参>)

 

1 p1 = Person('alex','M',20)
2 p2 = Person('Rose','F',18)
3 p1.tell()
4 p2.tell()
View Code

运行结果:

this is the informtion of alex 
this is the informtion of Rose 

三、面向对象特性

      面向对象的三大特性:封装、继承、多态

1. 封装

      Python对属性权限的控制是通过属性名来实现的,如果一个属性由双下划线开头(__),该属性就无法被外部访问,仅可以内部访问。

1 p1 = Person('alex','M',20)
2 p1.tell()
3 print('修改前:',p1.get_age())
4 p1.set_age(17)
5 print('修改后:',p1.get_age())

运行结果:

this is the informtion of alex 
修改前: 20
修改后: 17

这样外部要访问私有属性age必须通过get_age和set_age方法,这样就确保了外部代码不能随意修改对象内部的状态。

      

原文地址:https://www.cnblogs.com/iclq/p/5814396.html