Python 学习day19

pyhon day19 博客整理

面向过程和面向对象

什么是面向对象

​ 面向对象指的是一门编程思想

面向过程编程

​ 面向过程核心是'过程'二字,过程指的是做事情的步骤,即先做什么再去做什么

​ 该编程思想写程序,类似于工厂车间的流水线

​ 优点:

​ 逻辑清晰,将复杂的问题流程化,进而简单化

​ 缺点:

​ 可扩展性差

面向对象编程

​ 面向对象编程核心是'对象'二字,对象指的是特征与技能的结合体

​ 基于该编程思想编写程序,就类似于创造,去创建各个类和对象

​ 优点:

​ 可扩展性高

​ 缺点:

​ 编写程序的复杂度要远远高于面向过程编程思想

​ 对象是特征和技能的结合体,类是一系列对象相同的特征与技能的集合体

​ 如何定义类:

​ 首先定义类,后调用类去创造对象

定义类的语法:

​ def 函数名():

​ class 类名():

​ 对象相同的特征'

​ 对象相同的技能

​ class : 用来定义类,class 后面跟的是类名

​ 类名: 类的名字,用来调用创造的对象

attention : 类名必须要遵循驼峰命名法

定义类发生的事情

  1. 类在定义时,会产生一个空的名称空间

  2. 会把类内部所有名字,扔进类的名称空间中

    attention : 类在定义阶段就已经产生好了名称空间,执行python文件时会执行类内部的代码

#学生类
class OldboyStudent:
    #特征
    school = 'oldboy'
    #技能
    def learn(self)
        print('learn python...')
    def choose_course(self):
        print('choose_course...')
        
#OldboyStudent ---> 会指向类的名称空间
print(OldboyStudent.__dic__)  #查看类的名称空间内所有名字
print(OldboyStudent.__dic__.get('school'))   #oldboy

#改
OldboyStudent.school = 'oldgirl'
#增
OldboyStudent.address = 'shanghai'
#删
del OldboyStudent.address

对象

创建对象

语法

​ 类名 + ()调用类产生对象 ---> 类的实例化

名称空间的产生:

1. 类的名称空间在类定义阶段就已经产生
2. 对象的名称空间,在调用类时产生
class OldboyStudent:
    #特征
    school = 'oldboy'
    #技能
    def learn(self):
        print('learn pyhton...')
    def choose_course(self):
        print('choose_course...')
stu1 = OldboyStudent()  #学生对象
print(stu1.school)
stu1.learn()
stu1.choose_course()

实例化

​ 类名加括号就是实例化,会自动触发__int__函数的运行,可以用它来给每个实例定制自己的特征

​ self : 在实例化时自动将对象/实例本身传给__init__的第一个参数

#学生类
class OldboyStudent:
    #若__init__中有self以外的参数,调用类时必须在括号内传入参数
    def __init__(self,name,age,sex):
        self.name = name 
        self.age = age
        self.sex = sex
    #特征
    school = 'oldboy'
    #技能
    def learn(self):
        print('learn python...')
        
    def choose_course(self):
        print('choose_course...')
        
stu1 = OldboyStudent('jack',18,'male')
'''
****调用类发生的事情
    1. 首先会产生一个空的对象,就是产生'对象的名称空间'
    2. 会自动触发__init__
    2.会把对象本身以及括号内的参数一并传给__init__函数
    
****总结:调用类会产生一个对象,调用类的过程叫做类的实例化,产生对象称之为类的一个实例
'''

#查看类的名称空间
print(OldboyStudent.__dict__)
#查看对象的名称空间
print(stu1.__dict__)

对象与类的查找顺序

  1. 对象.属性,若对象本身有,则优先查找对象自己的
  2. 若对象本身没有,则去类里找,若类没有,则报错

对象绑定方法

类内部的函数主要是给对象用的:

​ 1.由类来调用类内部的函数,该函数只是一个普通的函数

​ 普通函数需要接收几个参数就得传入几个参数

  1. 由对象来调用称之为对象的绑定方法

    不同的对象调用该绑定方法,则会将不同的对象传入该绑定方法中

    -------对象的绑定方法,是由对象来调用的

    ​ 特殊之处就是把对象当做第一个参数传入该方法中

stu1 = OldboyStudent('rose',19,'female')

stu1.choose_course('python')

猜你喜欢

转载自www.cnblogs.com/samoo/p/11644483.html