软件测试/测试开发丨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.mzph.cn/news/587937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot 实现订单30分钟自动取消的策略

简介 在电商和其他涉及到在线支付的应用中,通常需要实现一个功能:如果用户在生成订单后的一定时间内未完成支付,系统将自动取消该订单。 本文将详细介绍基于Spring Boot框架实现订单30分钟内未支付自动取消的几种方案,并提供实例…

【每日试题】java面试之ssm框架

以下是20道常见的SSM(SpringSpring MVCMyBatis)面试题目和答案: 什么是SSM框架? SSM是指SpringSpring MVCMyBatis的组合,它是Java Web开发中常用的轻量级框架集合。 介绍一下SSM框架各个组件的作用? Sprin…

AI电商时代开始:阿里能否反杀拼多多

“AI电商时代刚刚开始,对谁都是机会,也是挑战。” 针对阿里员工对于拼多多财报和电商等的讨论,马云在阿里内网罕见地参与了谈论并发言。 阿里巴巴一向雷厉风行,已打响了AI电商的“第一炮”。 根据《晚点LatePost》报道&#xff…

C# vs报错 id为XX的进程当前未运行

报错原因:虚拟目录端口被占用 解决方法:重新配置新的目录端口就行 1、选择项目属性 2、更改端口号,点击创建虚拟目录 3、重新生成项目

ISP 基础知识积累

Amber:现有工作必要的技术补充,认识需要不断深入,这个文档后续还会增加内容进行完善。 镜头成像资料 ——干货满满,看懂了这四篇文章,下面的问题基本都能解答 看完思考 1、ISP 是什么,有什么作用&#xff…

PHP实现多继承

php支持多继承吗 不可以,只支持单继承。 可以使用 interface 或 trait 实现 。 实现方法 https://www.php.cn/faq/430197.html https://blog.58heshihu.com/index.php/archives/2288/

C++实现定积分运算

文章目录 题目代码 题目 代码 #include <iostream> #include <cmath> #include <functional>using namespace std;// 定积分函数 double integrate(function<double(double)> func, double a, double b, int num_intervals) {double h (b - a) / num…

Cisco无线Mobility Express配置Image TFTP服务器

思科的无线AP&#xff1a; 1800&#xff0c; 2800&#xff0c; 3800系列 这一类的AP本身可以做为无线控制器使用&#xff0c;被称为Mobility Express&#xff0c;简称为ME 可以管理多少AP 最多可管理 25个 是否需要license才能管理 不需要license 支持哪些型号的AP注册 只要…

浅谈冯诺依曼体系和操作系统

&#x1f30e;冯诺依曼体系结构 文章目录 冯诺依曼体系结构 认识冯诺依曼体系结构       硬件分类       各个硬件的简单认识         输入输出设备         中央处理器         存储器 关于内存 对冯诺依曼体系的理解 操作系统 操作系统…

成立一个理解起来很直观的 cpu cmodel 项目

a intuitionistic cpu project, 项目名称&#xff1a; intt-cpu 项目的几个原则或目标&#xff1a; 1&#xff0c;完整的cpu功能 2&#xff0c;不追求或性能&#xff0c;但追求 cpu 实现代码上的直观 3&#xff0c;得到 Linux 的架构 4&#xff0c;得到 llvm 编译器支持的…

野火霸道-V2+3.2寸屏+FreeRTOS+LVGL移植

摘要 基于野火霸道-V23.2寸屏的开发板&#xff0c;下载器为STLINK分为两个版本&#xff0c;FreeRTOS和裸机版本 裸机 裸机准备 lvgl v8.2版本的源码野火的《触摸画板-3.2寸》与《基本定时器》的代码例程 移植 将基本定时器代码移植到触摸画板-3.2寸的例程中&#xff0c;…

【python高级用法】迭代器、生成器、装饰器、闭包

迭代器 可迭代对象&#xff1a;可以使用for循环来遍历的&#xff0c;可以使用isinstance()来测试。 迭代器&#xff1a;同时实现了__iter__()方法和__next__()方法&#xff0c;可以使用isinstance()方法来测试是否是迭代器对象 from collections.abc import Iterable, Iterat…

驾驶人类未来:Apollo自动驾驶系统的影响力

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. 什么是自定义指令&#xff1f;2. Apollo中的自定义指令2.1 查询中的自定义指令2.2 变更操作中的自定义指令 3. 自定义指令的实现结论 文章目录 前言1. 什…

中职网络安全Server2002——Web隐藏信息获取

B-2&#xff1a;Web隐藏信息获取 任务环境说明&#xff1a; 服务器场景名&#xff1a;Server2002&#xff08;关闭链接&#xff09;服务器场景用户名&#xff1a;未知 有问题需要环境加q 通过本地PC中渗透测试平台Kali使用Nmap扫描目标靶机HTTP服务子目录&#xff0c;将扫描子…

蓝桥杯python比赛历届真题99道经典练习题 (61-70)

【程序61】 题目:打印出杨辉三角形(要求打印出10行如下图)    1.程序分析: if __name__ == __main__:a = []for i in range(10):a.append([])for j in range(10):a[i].append(0)for i in range(10):a[i][0] = 1a[i][i] = 1for i in range(2,10):for j in range(1,i):…

如何理解鼠标点击事件在程序中的处理

在计算机用户界面中&#xff0c;鼠标点击是一个常见的交互动作。那么&#xff0c;当你按下鼠标时&#xff0c;程序是如何知道这个点击是否针对它自己的按钮的呢&#xff1f;本文将探讨鼠标点击事件在操作系统和应用程序之间的传递过程。 鼠标点击事件的捕获 当你按下鼠标按钮…

2023-12-19 LeetCode每日一题(寻找峰值 II)

2023-12-19每日一题 一、题目编号 1901. 寻找峰值 II二、题目链接 点击跳转到题目位置 三、题目描述 一个 2D 网格中的 峰值 是指那些 严格大于 其相邻格子(上、下、左、右)的元素。 给你一个 从 0 开始编号 的 m x n 矩阵 mat &#xff0c;其中任意两个相邻格子的值都 不…

P5729 【深基5.例7】工艺品制作题解

题目 现有一个长宽高分别为w,x,h组成的实心玻璃立方体&#xff0c;可以认为是由111的数个小方块组成的&#xff0c;每个小方块都有一个坐标(i,j,k)。现在需要进行q次切割。每次切割给出(x1​,y1​,z1​),(x2​,y2​,z2​)这 6 个参数&#xff0c;保证x1​≤x2​&#xff0c;y1​…

详解数组的轮转

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

2023.12.31 python总结

目录 1.python语法 2.基础语句 3.容器 4.函数 5.语法进阶 6.文件操作 7.异常处理 8.模块 9.正则表达式 10.pymysql,pandas 11.闭包装饰器 12. 多进程多线程 13.网络编程 14.面向对象 1.python语法 注释 命名规则:大小驼峰,蛇形 数据类型: int,float,bool,strin…