11Python学习之路--面向对象及类的快速入门

1. 面向对象的简介

  • 1.1 面向过程
    • 指将我们的程序分解为一个一个的步骤,通过对每个步骤的抽象来完成程序
    • 面向过程的编程方式往往只适用于一个功能,如果要实现别的功能,往往复用性比较低
    • 面向过程的编程方式更符合人类的思维,编写容易
  • 1.2 面向对象
    • 对象:就是在内存中指定来存储数据一块区域。
    • 面向对象的编程语言,简单理解就是语言中的所有操作都是通过对象进行的,更多的关注是对象本身,而不注重过程,认为一切皆是对象
    • 面向对象的编程思想,将所用方法和属性都统一保存到对应的对象中,要使用某个功能直接找到对应的对象即可。
    • 这种编程方式比较容易阅读,结构清晰,并且容易维护,容易复用。但编写过程中不太符合常规的思维,编写相对麻烦
  • 1.3 python是一门面向对象的编程语言,python中一切皆对象

2. 面向对象的结构

  • 2.1 id (对象的唯一标识)
  • 2.2 type(类型) 标识当前对象所属的类型
  • 2.3 value(值) 对象中存储的具体数据
    • 可变对象 和不可变对象
  • 2.4 示例:
    class MyClass:   # 类名首字母大写,区别于Python的内建对象
        pass
    print(MyClass)
    print(id(MyClass))
    # 类也是一个对象,类是一个用来创建对象的对象
    # 类是type类型的对象,定义类就是定义了一个type类型的对象
    # 类在内存中也有自己的id,独立的内存空间
    # 与C++语言中类有很大的区别,python中的类可以直接使用,而C++的类不能直接使用
    print(type(MyClass)) # 结果<class 'type'> 
    
    • 运行结果:
      在这里插入图片描述

3. 类

  • 3.1 分类
    • 内置对象:以前学的int、float、list、tuple、dict等,内置对象远远不能满足我们的开发需求
    • 自定义对象:类本身 或 通过类生成的对象
    • 语法:
      在这里插入图片描述
    • 不指定父类时,我们也可以这样写:
      在这里插入图片描述
  • 3.2 类就是对象的模型,可以根据类来创建特定的对象
  • 3.3 对象是类的实例
    • 示例:
    class MyClass:
        pass
    mc = MyClass()  # mc 是MyClass 的实例
    
    print(isinstance(mc,MyClass))
    
    • 运行结果:
      True
  • 3.4 如果多个对象通过一个类创建的,我们称这些对象是同一类对象
  • 3.5 类也是一个对象,是用来创建对象的对象
  • 3.6 可以向对象中添加变量,对象中的变量称为属性
    • 示例:

      mc = MyClass()  # mc 是MyClass 的实例
      mc.name = '黑蜘蛛'  # 给对象中添加变量
      print(mc.name)
      
    • 运行结果:
      在这里插入图片描述

4. 类的定义

  • 4.1 类和对象都是对现实生活中事物的抽象
  • 4.2 事物包含两部分:
    • 数据:属性

    • 行为:方法

    • 给对象添加数据:对象.属性名=属性值

    • 调用对象方法:对象.方法名()
      示例:

      class MyClass:
          name = '哈哈哈'
      
          def speak(a):
              print("我是:哈哈哈")
      
      mc = MyClass()
      mc.speak()
      
    • 运行结果:
      在这里插入图片描述

  • 4.3 方法调用和函数调用的区别
    • 函数调用是有几个形参,就传几个实参。方法调用是默认传递一个参数,因此方法中至少有一个形参
  • 4.4 类中属性和方法
    • 一般情况下,对象的属性是对象私有的,保存在实例对象中,而对象的方法是同一类对象公有的,保存在类对象中
    • 如果这个属性(方法)是所有实例共享的,则应该将其保存到类对象中
    • 如果这个属性(方法)是某个实例独有的,则应该保存到实例对象中
    • 类中定义的属性和方法都是公共的,任何该类的实例对象都可访问
  • 4.5 属性和方法的查找流程
    • 当我们调用一个对象的属性时,解析器会先在当前的对象中寻找是否存在该属性,如果存在则返回当前对象的属性值。如果没有找到,则去当前对象的类对象中去寻找,如果存在则返回类对象的属性值。如果没有就会报错

5. 参数

  • 5.1 在调用类中的方法时,会自动传递一个self参数

  • 5.2 类的方法中至少指定一个形参,而第一个形参接收的就是调用对象id,形参名字最好用约定的self,但用其他名字也不会报错

  • 5.3 self 总是指向调用类的实例对象

  • 示例:

    class MyClass:
        name = ''
    	# self指明调用类的实例对象
        def speak(self):
            print("我是:",self.name)
    
    mc = MyClass()
    mc1 = MyClass()
    mc.name = 'MC'
    mc1.name = 'MC1'
    mc.speak()
    mc1.speak()
    
    • 运行结果:
      在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python 是一种面向对象的编程语言,因此学习 Python 也需要学习面向对象编程。下面是 Python 面向对象编程的一些基本概念和语法: 1. 类和对象 在 Python 中,类是一种抽象的数据类型,用于描述实体的属性和行为。对象是类的实例,它具有类定义的属性和方法。 定义一个类的语法如下: ``` class MyClass: # 类的定义 ``` 创建一个对象的语法如下: ``` my_object = MyClass() ``` 2. 属性和方法 类中的属性是描述实体特征的数据。方法是实体行为的函数。 属性和方法的访问方式如下: ``` class MyClass: def __init__(self, name, age): self.name = name self.age = age def info(self): print("name:", self.name) print("age:", self.age) my_object = MyClass("Tom", 20) my_object.info() ``` 3. 继承 继承是一种描述类之间关系的机制。在 Python 中,一个类可以从另一个类继承属性和方法。 继承的语法如下: ``` class ChildClass(ParentClass): # 子类的定义 ``` 4. 多态 多态是一种描述不同对象之间关系的机制。在 Python 中,多态通过方法重载和方法重写实现。 方法重载指的是在同一个类中定义多个方法名相同但参数不同的方法。方法重写指的是子类重写父类的方法。 下面是一个多态的例子: ``` class Animal: def shout(self): print("Animal shout") class Cat(Animal): def shout(self): print("Cat shout") class Dog(Animal): def shout(self): print("Dog shout") def animal_shout(animal): animal.shout() cat = Cat() dog = Dog() animal_shout(cat) animal_shout(dog) ``` 在上面的例子中,`animal_shout` 方法的参数可以是任何继承自 `Animal` 类的对象,因此它具有多态性。 以上是 Python 面向对象编程的基本概念和语法,希望能够帮助你入门面向对象编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值