面向历程的递次设计把计算机递次视为一系列的敕令鸠合,即一组函数的递次实行。为了简化递次设计,面向历程把函数继续切分为子函数,即把大块函数经由过程切割成小块函数来下降体系的复杂度。
python和java都是面向对象的言语。面向对象编程的特性数据封装、继续和多态
1.类和实例
面向对象最主要的观点就是类(Class)和实例(Instance),必需切记类是笼统的模板,比方Student类,而实例是依据类建立出来的一个个细致的“对象”,每一个对象都具有雷同的要领,但各自的数据能够差别。
在python中,定义类一样也是运用class关键字,class背面紧跟着的是类名,须要开首大写,以后的括号里示意的是继续的哪一个类,即它的父类。
class Student(object): pass
我们能够自由地给这个变量绑定属性
>>>nick.name = 'Liu Ling Hao' >>>nick.name 'Liu Ling Hao'
而以后定义的差别的函数则是要领。总结来讲对象=属性+要领
由于类能够起到模板的作用,因而,能够在建立实例的时刻,把一些我们以为必需绑定的属性强迫填写进去。此时就须要用到比较特别的__init__要领。(int 前后各有两个下划线)
__init__要领的第一个参数永远是self,示意建立的实例自身。
class Student(object): def __init__(self, name, score): self.name = name self.score = scor >>> bart = Student('Bart Simpson', 59) >>> bart.name 'Bart Simpson' >>> bart.score 59
当有了__init__要领以后,在建立实例的时刻,就不能传入空的参数了,必需传入与__init__要领婚配的参数
2.封装,继续和多态
面向对象编程的一个主要特性就是数据封装。
就像上面例子中的name和score,我们能够直接在类的内部定义的函数去接见,,比方能够增加一个数据或许关于一个列表举行排序,我们能够完成,然则我们并不知道它的内部是经由过程怎样调治而完成的。
当我们定义一个class的时刻,能够从某个现有的class继续,新的class称为子类(Subclass),而被继续的class称为基类、父类或超类(Base class、Super class)。
继续的优点就是获得了父类的悉数功用,关于子类而言,能够在父类的基础上接着写,越发轻易
class Person(object): def idea(self): print('study is happy')class Liu(Person): pass liu =Liu()liu.idea study is happy
固然子类如果有和父类一样的要领时会自动覆盖掉父类的
多态:差别对象对统一要领相应差别的行为
>>>class Nick1: def name(self): print("我是1") >>>class Nick2: def name(self): print("我是2") >>>a = Nick1() >>>b = Nick2() >>>a.name 我是1 >>>b.name 我是2
运用的函数名虽然一样然则完成并不一样。
def run(animal): animal.run() animal.run() >>> run(Animal()) Animal is running... Animal is running... >>> run_twice(Dog()) Dog is running... Dog is running...
多态的优点就是,当我们须要传入Dog或许别的动物时,我们只须要吸收Animal范例就能够了,由于Dog都是Animal范例,然后,根据Animal范例举行操纵即可。由于Animal范例有run()要领,因而,传入的恣意范例,只如果Animal类或许子类,就会自动挪用现实范例的run()要领,这就是多态。
【引荐课程:Python视频教程】
以上就是【Python进修】面向对象的编程的细致内容,更多请关注ki4网别的相干文章!