Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python类方法与静态方法的区别

作者:伤哖铱旧   发布日期:2025-12-29   浏览:89

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 装饰器定义,可以通过类或实例调用,不能访问实例或类属性。它不带任何隐式的第一个参数(如 selfcls)。

上一篇:brew install python3

下一篇:python while true循环

大家都在看

python时间格式

pythoneval函数用法

python读取文件路径

staticmethod在python中有

python 保存json文件

python开发windows应用程序

python中len是什么意思

python ord和chr

python中的yield

python自定义异常

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站