python如何面向对象编程


本文摘自php中文网,作者silencement,侵删。

面向对象编程简单来说就是基于对 类 和 对象 的使用,所有的代码都是通过类和对象来实现的编程就是面向对象编程!

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

首先创建一个类

1

2

3

4

5

#使用class创建一个School类,类中有个student方法

class School:

    def student(self):

        pass

a1=School()

一、封装

1、封装:将某些内容先封装到一个地方,等到需要的时候再去调用

1

2

3

4

class School:    def __init__(self,name,age):    #构造方法,创建对象是执行

        self.name=name

        self.age=age#创建对象a1,a2a1=School("zhangsan",18)

a2=School("lisi",18)

上面代码实现的就是封装的功能,把各自的name和age分别封装到了self的name和age属性中,就等于被封装到了对象a1和a2中

类中定义的函数叫做方法,带有__init__的函数称为构造方法,在创建a1,a2对象时会自动执行。

2、调用:调用有两种方式,通过对象直接调用和通过self间接调用

通过对象直接调用

1

2

3

4

5

6

7

class School:    def __init__(self,name,age):

        self.name=name

        self.age=age    def student(self):        print("name:%s,age:%s"%(self.name,self.age))#创建对象a1,a2a1=School("zhangsan",18)

a2=School("lisi",18)

print a1.name,a1.age

print a2.name,a2.age#执行结果: zhangsan 18

      lisi 18

通过self间接调用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

class School:

    def __init__(self,name,age):

        self.name=name

        self.age=age

 

    def student(self):

        print("name:%s,age:%s"%(self.name,self.age))

#创建对象a1,a2

a1=School("zhangsan",18)

a2=School("lisi",18)

 

#执行类中的方法时,通过self间接调用被封装的内容

a1.student()

a2.student()

#执行结果:

#name:zhangsan,age:18

#name:lisi,age:18

二、继承

1、继承:既派生类(子类)可以继承基类(父类)的方法,我们可以将多个类共有的方法提取到父类当中,这样子类仅需继承父类而不必一一实现每个方法

在类名后面括号中写上另一个类,表示继承了那个类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

class School:

    def __init__(self,name,age):

        self.name=name

        self.age=age

 

    def student(self):

        print("name:%s,age:%s"%(self.name,self.age))

    def classroom(self):

        print("%s去教室"%self.name)

 

class SchoolA(School):  #SchoolA继承School

    def __init__(self,name):

        self.name=name

 

class SchoolB(SchoolA): #SchoolB继承SchoolA

    def __init__(self,name):

        self.name=name

#创建对象a1

a1=SchoolA("zhangsan")

a1.classroom()

#创建对象a2

a2=SchoolB("lisi")

a2.classroom()

 

#执行结果:

#   zhangsan去教室

#   lisi去教室

在上面代码中我们可以看到,在SchoolA和SchoolB中都没有classroom方法,但由于SchoolB继承了SchoolA,而SchoolA又继承了School,所以他们创建对象后都能

调用School中的classroom方法。

2、多继承

在python中,类还可以继承多个类,在继承多个类时,他对类中的函数查找有两种方式

深度优先:类是经典类时,多继承情况下,会按照深度优先方式查找

广度优先:类是新式类时,多继承情况下,会按照广度优先方式查找

(在python3.x中)都默认为广度优先,但还是可以了解一下两个的区别,新式类:当前类或者基类继承了objiect类就叫新式类,否者就是经典类。

以上就是python如何面向对象编程的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python实现发短信的方法介绍(附代码)

Python怎么调试?

Python将多个映射合并为单个映射的方法与分析(代码实例)

Python代码是什么语言

Python实现代码行数统计工具的功能(实例)

Python爬虫入门学习什么

如何修改Python字典内的值?2种修改Python字典内的值方法总结

Python中回调的含义详解

web自动化测试(一)selenium 3使用系列问题集

正则表达式%是什么意思,本文通过Python正则表达式例子详解

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...