当前位置: 首页 > news >正文

软件测试/测试开发丨Python 面向对象编程思想

面向对象是什么

  • Python 是一门面向对象的语言
  • 面向对象编程(OOP):Object Oriented Programming

所谓的面向对象,就是在编程的时候尽可能的去模拟真实的现实世界,按照现实世界中的逻辑去处理问题,分析问题中参与其中的有哪些实体,这些实体应该有什么属性和方法,我们如何通过调用这些实体的属性和方法去解决问题。

两种编程思想

  • 面向过程

    • 一种以过程为中心的编程思想
    • 首先分析解决问题所需要的步骤
    • 然后用函数将这些步骤一步一步的实现
    • 最后按顺序依次调用运行
  • 面向对象

    • 是一种更符合我们人类思维习惯的编程思想
    • 面向对象开发就是不断的创建对象,使用对象,操作对象做事情
    • 可以将复杂的事情简单化

类与对象

  • 类(class): 用来描述具有相同的属性和方法的对象的集合。它定义了集合中每个对象所共有的属性和方法。
  • 对象(object):也称为类的实例,是一个具体存在的实体。

类的定义

  • class 关键字
# 语法
class 类名(父类名):"""类的帮助信息"""属性方法
# class_def.py# 类的声明
class Human(object):"""人类"""# 定义属性(类属性)message = "这是类属性"# 通过类访问类属性
print(Human.message)

类的方法

  • 实例方法

    • 构造方法
  • 类方法

  • 静态方法

构造方法与实例化

  • 作用:实例化对象
  • 语法:def __init__(self, 参数列表)
  • 访问:类名(参数列表)
# constructor_method.pyclass Human:# 定义属性(类属性)message = "这是类属性"# 构造方法def __init__(self, name, age):# 实例变量self.name = nameself.age = ageprint("这是构造方法")# 实例化对象
person = Human("哈利波特", 12)# 通过实例访问类属性
print(person.message)# 通过实例访问实例属性
print(person.name)
print(person.age)

实例方法

  • 作用:提供每个类的实例共享的方法
  • 语法:def 方法名(self, 参数列表)
  • 访问:实例.方法名(参数列表)
# instance_method.pyclass Human:# 实例方法def study(self, course):print(f"正在学习{course}")# 实例化
person = Human()# 通过实例访问实例方法
person.study("python")

类方法

  • 作用:可以操作类的详细信息
  • 语法:@classmethod
  • 访问:类名.类方法名(参数列表)
  • 类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量
# class_method.pyclass Human:# 类属性population = 0# 类方法@classmethoddef born(cls):print("这是类方法")cls.population += 1# 通过类名访问类方法
Human.born()
print(Human.population)

静态方法

  • @staticmethod
  • 类的静态方法中无法调用任何类属性和类方法。
# static_method.pyclass Human:# 静态方法@staticmethoddef grow_up():print("这是静态方法")# 通过类名访问静态方法
Human.grow_up()

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

http://www.lryc.cn/news/270745.html

相关文章:

  • 一次降低进程IO延迟的性能优化实践——基于block层bfq调度器
  • C语言易错知识点十(指针(the final))
  • React 18 新增的钩子函数
  • 安装与部署Hadoop
  • MySQL 8.0 InnoDB Tablespaces之General Tablespaces(通用表空间/一般表空间)
  • 循环生成对抗网络(CycleGAN)
  • 数组--53.最大子数组和/medium
  • centos 编译安装 python 和 openssl
  • 【nodejs】前后端身份认证
  • 数据结构【线性表篇】(三)
  • Python装饰器的专业解释
  • vue3框架笔记
  • pytest --collectonly 收集测试案例
  • dev express 15.2图表绘制性能问题(dotnet绘图表)
  • WorkPlus:领先的IM即时通讯软件,打造高效沟通协作新时代
  • 学习SpringCloud微服务
  • WPF 显示气泡提示框
  • L1-062:幸运彩票
  • python+vue高校体育器材管理信息系统5us4g
  • 10 款顶级的免费U盘数据恢复软件(2024 年 更新)
  • C# json 转匿名对象及C#关键字的处理
  • 关于彻底通过外网,自动批量下载Python的pip依赖包后到企业内网重安装的步骤-比单个包的要方便多了。
  • Oracle T4-4小型机上配置Ldom部署rac
  • 【2023Hadoop大数据技术应用期末复习】填空题题型整理
  • 劫持 PE 文件:新建节表并插入指定 DLL 文件
  • HTTP分数排行榜
  • Android 实现 Slots 游戏旋转效果
  • AI产品经理 - 如何做一款软硬协同AI产品
  • 拒绝采样(算法)总结
  • 分布式数据库事务故障恢复的原理与实践