文章目录
前言
Python中的装饰器(decorators)是一种用于扩展或修改函数、方法或类行为的技术
装饰器本质上是一个接受函数或方法作为参数的函数,并返回一个修改后的函数或方法,它使得你可以在不修改原始函数代码的前提下,增强函数的功能
一、@staticmethod
-
作用:
将一个类中的方法定义为静态方法,静态方法不需要访问实例对象(self)或类对象(cls)的任何数据 -
用途:
用于那些不依赖于类实例的功能,比如一些工具方法
静态方法通常用于与类功能相关但不需要访问类或实例属性的操作 -
示例:
class MyClass:
@staticmethod
def greet(name):
return f"Hello, {
name}!"
# 调用静态方法
print(MyClass.greet("Alice"))
二、@classmethod
1.作用:
将一个方法定义为类方法,类方法接收类本身作为第一个参数(通常是cls),而不是实例(self)。类方法可以访问和修改类的状态
2.用途:
用于需要访问类属性或修改类状态的方法
常用于实现工厂方法(通过类方法创建类的实例)
3.示例:
class MyClass:
count = 0
@classmethod
def increment_count(cls):
cls.count += 1
# 调用类方法
MyClass.increment_count()
print(MyClass.count)
三、@property
-
作用:
将一个方法定义为属性,允许通过访问属性的方式调用方法,这种装饰器可以对属性访问进行封装 -
用途:
用于提供计算属性,或者对类属性进行封装,使得外部代码无需直接调用方法就能获取值
可以为属性添加getter、setter和deleter方法,增强属性的控制 -
示例:
class Circle:
def __init__(self, radius):
self._radius = radius
# Getter方法,用@property装饰
@property
def radius(self):
print("Getter called")
return self

最低0.47元/天 解锁文章
262

被折叠的 条评论
为什么被折叠?



