写点什么

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

作者:测试人
  • 2023-07-20
    北京
  • 本文字数:1255 字

    阅读完需:约 4 分钟

免费领取:测试资料+性能测试+接口测试+自动化测试+测试开发+测试用例+简历模板+测试文档

本文为霍格沃兹测试开发学社学员学习笔记分享

原文链接:https://ceshiren.com/t/topic/26225

面向对象是什么

  • Python 是一门面向对象的语言

  • 面向对象编程(OOP):Object Oriented Programming

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

两种编程思想

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

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

类与对象

  • 类(class): 用来描述具有相同的属性和方法的对象的集合。它定义了集合中每个对象所共有的属性和方法。

  • 对象(object):也称为类的实例,是一个具体存在的实体。

类的定义

  • class 关键字

# 语法class 类名(父类名):    """类的帮助信息"""    属性    方法
复制代码


# class_def.py
# 类的声明class Human(object): """人类"""
# 定义属性(类属性) message = "这是类属性"

# 通过类访问类属性print(Human.message)
复制代码

类的方法

  • 实例方法构造方法

  • 类方法

  • 静态方法

构造方法与实例化

  • 作用:实例化对象

  • 语法:def __init__(self, 参数列表)

  • 访问:类名(参数列表)

# constructor_method.py
class Human:
# 定义属性(类属性) message = "这是类属性"
# 构造方法 def __init__(self, name, age): # 实例变量 self.name = name self.age = age print("这是构造方法")

# 实例化对象person = Human("哈利波特", 12)
# 通过实例访问类属性print(person.message)
# 通过实例访问实例属性print(person.name)print(person.age)
复制代码

实例方法

  • 作用:提供每个类的实例共享的方法

  • 语法:def 方法名(self, 参数列表)

  • 访问:实例.方法名(参数列表)

# instance_method.py

class Human:
# 实例方法 def study(self, course): print(f"正在学习{course}")
# 实例化person = Human()
# 通过实例访问实例方法person.study("python")
复制代码

类方法

  • 作用:可以操作类的详细信息

  • 语法:@classmethod

  • 访问:类名.类方法名(参数列表)

  • 类方法和普通方法的区别是, 类方法只能访问类变量,不能访问实例变量

# class_method.py
class Human:
# 类属性 population = 0
# 类方法 @classmethod def born(cls): print("这是类方法") cls.population += 1

# 通过类名访问类方法Human.born()print(Human.population)
复制代码

静态方法

  • @staticmethod

  • 类的静态方法中无法调用任何类属性和类方法。

# static_method.py
class Human:
# 静态方法 @staticmethod def grow_up(): print("这是静态方法")

# 通过类名访问静态方法Human.grow_up()
复制代码


发布于: 刚刚阅读数: 3
用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
软件测试/测试开发丨Python 面向对象编程思想_Python_测试人_InfoQ写作社区