Python的实例方法,类方法和静态方法的区别

本文介绍了面向对象编程(OOP)的基本概念,并通过Python代码示例详细解释了实例方法、类方法和静态方法的区别及使用场景。实例方法可以访问实例变量,而类方法只能访问类变量,静态方法则无法直接访问类或实例的属性。

OOP是一种编程思想,各种语言对这种思想的实践都不尽相同,这体现在他们的语法当中

class Test(object):

    class_name = "Test"

    def __init__(self):
        self.x = 5


    #实例方法
    def test01(self):
        print("InstanceMethod called!")
        print(self.x)

    #类方法
    @classmethod
    def test02(cls):
        print("ClassMethod called!")
        print(cls.class_name)

    #静态方法
    @staticmethod
    def test03():
        print("StaticMethod called!")

if __name__ == "__main__":
    T = Test()
    # test01的两种调用方式
    T.test01()
    Test.test01(T)

    # test02的调用方式
    T.test02()

    # test03的调用方式
    T.test03()
    Test.test03()

执行结果:

InstanceMethod called!
5
InstanceMethod called!
5
ClassMethod called!
Test
StaticMethod called!
StaticMethod called!

实例方法就是普通的类的方法
类方法只能访问类的属性不能访问实例的属性
静态方法不能访问类和实例属性,就是在类型的一般函数

例子里。普通方法和静态方法都有两种调用方式,但是前者总要传入实例,但是后者不需要,请注意甄别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值