在 PySide6有一些常用的装饰器和工具,用于增强代码的功能和可读性。以下是一些常见的装饰器及其用法:
1. @staticmethod
@staticmethod
是 Python 内置的装饰器,用于声明静态方法。静态方法不需要访问类实例或类本身,可以直接通过类名调用。
示例:
class MyClass:
@staticmethod
def my_static_method():
print("This is a static method")
# 调用静态方法
MyClass.my_static_method()
2. @classmethod
@classmethod
是 Python 内置的装饰器,用于声明类方法。类方法的第一个参数是类本身(通常命名为 cls
),而不是实例。
示例:
class MyClass:
@classmethod
def my_class_method(cls):
print(f"This is a class method of {cls.__name__}")
# 调用类方法
MyClass.my_class_method()
3. @property
@property
是 Python 内置的装饰器,用于将方法转换为属性。通过 @property
,你可以像访问属性一样访问方法,而不需要显式调用方法。
示例:
class MyClass:
def __init__(self):
self._value = 10
@property
def value(self):
return self._value
@value.setter
def value(self, new_value):
self._value = new_value
# 使用属性
obj = MyClass()
print(obj.value) # 访问属性
obj.value = 20 # 设置属性
4. @functools.lru_cache
@functools.lru_cache
是 Python 标准库 functools
中的装饰器,用于缓存函数的返回值,避免重复计算。
示例:
import functools
@functools.lru_cache(maxsize=128)
def fibonacci(n):
if n <