class MyClass:
class_attribute = 0
def __init__(self, value):
self.instance_attribute = value
# 实例方法
def instance_method(self):
return f"实例方法,访问实例属性: {self.instance_attribute}"
# 类方法
@classmethod
def class_method(cls):
return f"类方法,访问类属性: {cls.class_attribute}"
# 静态方法
@staticmethod
def static_method():
return "静态方法,不访问实例或类属性"
# 创建类的实例
obj = MyClass(10)
# 调用实例方法
print(obj.instance_method()) # 输出: 实例方法,访问实例属性: 10
# 调用类方法
print(MyClass.class_method()) # 输出: 类方法,访问类属性: 0
print(obj.class_method()) # 输出: 类方法,访问类属性: 0
# 调用静态方法
print(MyClass.static_method()) # 输出: 静态方法,不访问实例或类属性
print(obj.static_method()) # 输出: 静态方法,不访问实例或类属性
self,表示当前实例。@classmethod 装饰器定义,可以通过类或实例调用,可以访问和修改类属性。第一个参数是 cls,表示当前类。@staticmethod 装饰器定义,可以通过类或实例调用,不能访问实例或类属性。它不带任何隐式的第一个参数(如 self 或 cls)。Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站