面向对象基础

面向过程:

核心是过程二字,过程指的是结局问题的步骤,设计一条流水线,机械式的思维方式,

根据业务逻辑从上到下写代码

优点:复杂的问题流程化,进而简单化

缺点:可扩展性差

面向对象:

核心就是对象二字

类:类是一系列对象的特征与相似的结合体
对象:特征与技能的集合体

将数据与函数绑定到一起,进行封装,这样能够更快速的开发程序,减少了重复代码的重写过程
优点:可以扩展性强,
缺点:编程复杂度高
引用场景:用户需求经常变化,互联网应用,游戏,企业内部应用

什么是类:类就是一系列对象的特征与技能的结合体
强调:站在不同的角度,得到的分类是不同的

 

 类的构成

类(Class) 由3个部分构成

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

 

类的抽象

如何把日常生活中的事物抽象成程序中的类?

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

方法:一般名词都是类(名词提炼法)

 

 

定义类,

calss luffystudent:
    school = 'luffycity' # 数据属性   类在定义的时候就会执行
    def learn(self): # 函数属性
        print('is learning')
    def eat(self):
        print('is eating')

 

2后产生对象

python2 新式类,经典类

  • 经典类,没有继承object的类,以及它的子类都称之为经典类
  • 新式类,继承object的类,以及它的子类都称之为新式类

python3 都是新式类,一个类没有继承object类,其实是默认继承

  • 新式类,有一个内置方法.__mro__( ) 广度优先
  • 经典类,没有mro方法,一条道走到黑,深度优先

类的基本操作

  • 查看类的名称空间
    print(luffyStudent.__dict__)    #print(luffyStudent.__dict__['school'])

  • print(luffystudent.school) # == luffyStudent.__dict__['school']

  • luffy.student.county = "China"

  • del luffystudent.county

  • luffystudent.school = 'luffycity'

对象的基本操作
__init__方法用来为对象定制自己独有的特征,实例化对象的时候自动调用

  • 实例化对象
    stu = luffystudent()

  • print(stu.__dict_)
    print(stu.school)

  • stu.school = "安富中学"

  • del stu.school

  • shu.class_name = "python开发"

绑定方法

类中的数据属性,是所有对象共有的
函数对象是绑定给对象的
类中的函数属性:是绑定给对象使用的,绑定到不同的对象是不同的绑定方法,会把对象本身当做第一个传入,传给self
类中定义的函数,是绑定给对象使用的

 


posted @ 2018-06-01 21:58  感动#心  阅读(118)  评论(0编辑  收藏  举报