面向对象基础
面向对象
面向对象基础
1、面向对象思想简介
- 
面向过程 自上而下执行 逐步求精 各模块之间相对简单 在功能上相对独立 每一模块内 由顺序 、分支、循环结构组成的 
- 
面向对象 把数据、数据操作方法 放在一起 作为一个相互依存的整体 对象对同类对象抽象出其共性 形成类 类中的大多数数据 只能用本类的方法去处理 类通过一个简单的接口与外界发生关系 流程 由用户在使用中决定的 
- 
理解面向对象 - 
面向对象是相对面向过程来说 
- 
面向对象和面向过程都是一种思想 面向过程 关注的是解决问题需要哪些步骤 面向对象 将功能封装进对象 强调了具备功能的对象 
- 
面向对象是基于面向过程的 
- 
面向对象的特点 是一种符合人们思考的思想 可以将复杂的事情简单化 将程序由执行者变成了指挥者 
- 
类与对象的关系 python中描述事物 通过类的形式展现的 类是具体事物的抽象 概念上的定义 对象是符合该类定义的真实存在的事物的个体 我们说的汽车、美女、帅哥等等 这些都是类 比如说 咱班的婷婷、伟哥的桌子那么这些就是真实存在的对象 符合(美女和桌子)类的定义 
- 
面向对象的特点 封装、继承、多态 
 
- 
2、第一个python类
- 
定义 类名: 首字母大写 遵循标识符的命名规则 属性:也就是变量 遵循标识符的命名规则 行为:也就是功能、也就是函数 遵循标识符的命名规则 
- 
设计类 汽车类 class Car: 属性 color = '白色' weight = '2吨' jigang = '4' 行为 def lak(self): print('可以拉乘客')
- 
创建类 - 
格式 class 关键字 类名([类名]):  pass 
- 
说明 class 是定义类的关键字 类名 类的名字 () 继承的父类 如果不写 默认继承object类 
- 
实例 class Test(object): pass # 定义了一个空类 # 类实例化成为对象 t = Test() print(Test) print(t) # 获取当前对象是哪个类的实例化 print(t.__class__) ```
 
- 
- 
创建存在属性与方法的类 class Person: # 属性 name = '李俊' age = 19 sex = '女' facevalue = 'low' # 行为 def dbj(self): print('造福人类') def hobby(self): print('抽烟、喝酒、烫头')
3、使用类实例化对象
- 
格式 对象名 = 类名([参数]) 
- 
说明 参数列表 :为了以后给属性赋值(参数传递) 
- 
实例化代码 # 实例化出李俊对象 lijun = Person() # 调用属性 print(lijun.name) print(lijun.age) # 调用方法 print(lijun.hobby())
4、self对象
- 
概述 - 在类的内部 使用def关键字来定义方法(函数) 与一般函数不同 方法必须存在第一个参数 也就是self 且为第一个参数 self代表的是当前类的实例 而非类
- self参数名 可以随便写 但是建议使用self
 
- 
实例 class Test: name = 'lucky' age = 18 def say(self): print('测试self参数') # abc 就是外部当前调用的对象(谁调用 abc就是谁) # 调用内部的所有属性和方法 # self叫什么都行 但是统一叫self def speak(abc): # 验证参数abc 和 外部对象t1的关系 print(abc) print('abc_id', id(abc)) # 调用属性 print(abc.name) print(abc.age) # 使用abc对象 创建对象属性 abc.sex = 'man' abc.say() # 调用方法 print(abc.__dict__) print('speak方法') # 对象 t1 = Test() t1.speak() print('t1', t1) print('t1_id', id(t1)) # 调用self创建的对象属性 sex print(t1.sex) # 查看t1对象内部的所有属性和方法 print(t1.__dict__)注意 - self就是当前类实例化的对象 哪个对象调用它 他就是哪个对象
- self不是必须的名称 但是作为标准 必须叫self
- self在类的内部使用 用于调用和创建对象属性
 
6、对象方法的使用
class Test:
    name = 'lucky'
    age = 18
    # def test_args(self, sex, hobby):
    # def test_args(self, sex, hobby, *args):
    # def test_args(self, sex, hobby, **kwargs):
    def test_args(self, sex, hobby, *args, **kwargs):
        # 在调用test_args的时候 创建了对象属性  sex、hobby
        self.sex = sex
        self.hobby = hobby
        print(args)
        print(kwargs)
        return sex, hobby
t1 = Test()
# 调用
t1.test_args('man', '写代码')
t1.test_args(sex='man', hobby='写代码')
t1.test_args('man', '写代码', '非常喜欢写代码', '一天不写代码浑身难受')
print(t1.test_args('man', '写代码', sign1='非常喜欢写代码', sign2='一天不写代码浑身难受'))
print(t1.__dict__)
对象中的方法和函数使用一样(参数、返回值) 但是就多了一个self参数
本文来自博客园,作者:寻月隐君,转载请注明原文链接:https://www.cnblogs.com/QiaoPengjun/p/16021537.html

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号