面向对象——类专有方法;__str__ 方法 __str__ 是一个类的方法,在打印类对象,获取其属性信息时调用。打印一个实例化对象时,默认打印的其实时一个对象的地址,但是我们可以对其进行重载,打印我们想要的信息。例如上面的例子中进行的重载。;看下面两个例子对照;实例方法、类方法、静态方法 方法的主要区别在于参数: 实例方法隐含的参数为类实例 self类方法隐含的参数为类本身 cls静态方法无隐含参数,主要为了类实例也可以直接调用静态方法。 所以逻辑上类方法应当只被类调用,???例方法实例调用,静态方法两者都能调用。主要区别在于参数传递上的区别,实例方法悄悄传递的是self引用作为参数,而类方法悄悄传递的是 cls 引用作为参数。;下面实例展示三种方法 面向对象编程是Python中一种强大的编程范式,它允许我们通过类和对象来组织和抽象代码。在Python中,类的专有方法是特定于类的函数,它们在处理类对象时发挥着关键作用。本节我们将深入探讨`__str__`方法以及实例方法、类方法和静态方法的区别。 `__str__`方法是一个特殊的方法,当我们尝试打印一个类的实例或使用`str()`函数转换对象时,Python会自动调用这个方法。默认情况下,打印的对象会显示其内存地址,但通过重载`__str__`方法,我们可以定制打印的内容,提供更友好的输出。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f'Name: {self.name}, Age: {self.age}' p = Person('张三', 26) print(p) # 输出:Name: 张三, Age: 26 ``` 接下来,我们来看实例方法、类方法和静态方法的区别。这三种方法都是定义在类中的,但它们的参数和调用方式有所不同。 - **实例方法**:通常用于处理与特定实例相关的数据。它们的第一个参数通常是`self`,代表调用该方法的对象实例。例如,上面的`__str__`方法就是一个实例方法。 ```python class MyClass: def instance_method(self): print('实例方法') my_obj = MyClass() my_obj.instance_method() # 输出:实例方法 ``` - **类方法**:类方法通过`@classmethod`装饰器定义,第一个参数是`cls`,代表类自身,而不是实例。类方法常用于与类有关的计算或修改,而不是具体的实例。类方法可以由类或其实例调用。 ```python class MyClass: @classmethod def class_method(cls): print('类方法') MyClass.class_method() # 输出:类方法 my_obj = MyClass() my_obj.class_method() # 输出:类方法 ``` - **静态方法**:静态方法不接收`self`或`cls`作为参数,主要用于封装与类或实例无关的辅助功能。它们通过`@staticmethod`装饰器定义,可以直接通过类或其实例调用。 ```python class MyClass: @staticmethod def static_method(): print('静态方法') MyClass.static_method() # 输出:静态方法 my_obj = MyClass() my_obj.static_method() # 输出:静态方法 ``` 理解这些方法的区别对于编写可读性好、可维护性强的面向对象Python代码至关重要。根据需要选择合适的方法类型,可以帮助我们更好地组织代码,并使类的行为更加清晰。在实际开发中,我们可能会结合使用这三种方法,以实现复杂的功能并保持代码的整洁。通过熟练掌握这些面向对象的特性,开发者能够编写出更加灵活和高效的Python程序。
- 粉丝: 375
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- AI爬虫项目全套技术资料100%好用.zip
- 扒网站数据软件项目全套技术资料100%好用.zip
- Oracle10gDBA学习手册中文PDF清晰版最新版本
- 超智能体写的人工智能深度学习pdf
- Oracle高级SQL培训与讲解WORD文档doc格式最新版本
- 网页数据采集软件项目全套技术资料100%好用.zip
- OraclePLSQL简单安装指南WORD文档doc格式最新版本
- 西门子840D HMI ADVANCED FOR PC 也可用于810D,840DSL中文版 1、软件可安装到台式机或笔记本上,可以连接到机床的NCU进行NC与PLC的数据备份与恢复,备份和恢复的数
- Oracle安装配置使用WORD文档doc格式最新版本
- MATLAB代码:基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究 关键词:分布式调度 ADMM算法 交替方向乘子法 碳排放 最优潮流 仿真平台:MATLAB+CPLEX GUROBI