当前位置: 首页> 教育> 就业 > 十、面向对象基础

十、面向对象基础

时间:2025/8/25 17:24:38来源:https://blog.csdn.net/weixin_44063529/article/details/140398760 浏览次数:0次

文章目录

  • 学习目标
  • 一、面向对象介绍
  • 二、类和对象
    • 2.1 类
    • 2.2 对象
    • 2.3 类的设计
    • 2.4 self语句的使用
  • 三、魔法方法
    • 3.1 对象操作的魔法方法
    • 3.2 运算符相关的魔法方法
  • 四、内置属性
    • 4.1 把对象当做一个字典使用
  • 五、类属性和对象(实例)属性
  • 六、私有属性和方法

学习目标

  • 说出面向对象和面向过程的特点
  • 能够使用dir内置函数查看对象的方法
  • 能够使用类创建对象
  • 能够说出self的含义
  • 能够说出魔法方法什么时候调用
  • 能够说出内置属性的作用
  • 能够说出实例属性和类属性的区别
  • 能够定义和操作使用属性

一、面向对象介绍

  • 面向过程:根据业务逻辑从上到下写代码
  • 面向对象:将 变量与函数 绑定到一起,分类进行封装,每个程序只负责分配给自己的分类,这样能够更快速的开发程序,减少了重复代码

二、类和对象

  • 对象是面向对象编程的两个核心概念

2.1 类

类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用

  • 特征其实就是一个变量,在类里我们称之为属性
  • 行为其实就是一个函数,在类里我们称之为方法
  • 类其实就是由 属性方法 组成的一个抽象概念

2.2 对象

对象是由类创建出来的一个具体存在,可以直接使用。由哪一个类创建出来的 对象,就拥有在哪一个类中定义的属性和方法

2.3 类的设计

在程序开发中,要设计一个类,通常需要满足一下三个要素:

  1. 类名 这类事物的名字,按照大驼峰命名法(每个单词的首字母大写)起名
  2. 属性 这类事物具有什么样的 特征
  3. 方法 这类事物具有什么样的 行为
# 定义类:class关键字
# class 类名:类名按照大驼峰命名法(每个单词的首字母大写)起名
# 1. class <类名>
# 2. class <类名>(object)class Student(object):def __init__(self,name,age,height): # 在 __init__ 方法里,以参数的形式定义属性self.name = nameself.age = ageself.height = heightdef run(self):print('正在跑步')def eat(self):print('正在吃东西')# 使用 Student类 创建了两个实例对象 s1 s2
# s1和s2都会有name,age,height属性,同时都有run和eat方法
s1 = Student('小明',18,1.8)
s2 = Student('小美',19,1.65)

2.4 self语句的使用

class Student:# 这个属性直接定义在类里,是一个元组,用来规定对象可以存在的属性,可以限制动态属性的设置__slots__ = ('name','age')def __init__(self,x, y):self.name = xself.age = y
# Student('张三',18) 这段代码具体做了什么呢?
# 1. 调用 __new__ 方法,用来申请s内存空间
# 2. 调用 __init__ 方法传入参数,并让 self 指向申请好的那段内存空间,填充数据
# 3. 变量 s1 也指向创建好的这段内存空间
s1 = Student('张三', 18)# 直接使用等号给一个对象的属性赋值
# 如果这个属性以前不存在,会给对象添加一个新的属性
# 动态属性
s.city = '上海' # 给对象添加了一个city属性# 如果这个属性以前存在,会修改这个属性
s.name = 'jack'

三、魔法方法

3.1 对象操作的魔法方法

# 魔法方法,也叫魔术方法,是类里的特殊的一些方法
# 特点
# 1. 不需要手动调用,会在合适的时机自动调用
# 2. 这些方法,都是是使用 __ 开始,使用 __ 结束
# 3. 方法名都是系统规定好的,在合适的实际自己调用class Person(object):# __init__ 魔法方法在创建对象时,会自动调用这个方法def __init__(self,name,age
关键字:十、面向对象基础

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: