Python中类方法定义常见的三种实现方式

# -*- coding: utf-8 -*-
#---------------------------------------------------------------------------
class Person(object):
    def Work():
        print(" I am working!")
    @classmethod   #第一种方法:加装饰器方法

    def Think(cls,b):  #类方法Think必须要带至少1个参数,第一个参数默认为类名,后面可以引用。

        cls.Eat(b)        #在类方法Think中,调用类方法Eat类方法。

        cls.Work()       #在类方法Think中,调用类方法Work类方法(不加任何参数直接定义,也是类方法)。
        
        print(b,",I am Thinking!")
    def Eat(cls,b):      #属于第二种方法,先定义类方法,至少1个参数,第一个默认为类名。
        print(b+",I am eating")
    Eat=classmethod(Eat)    #第二种方法:引用Eat方法,然后加上classmethod转换即可。
    def __scolia__(self):         #这种方法是:实例对象调用方法。
        print("scola")
        return "scola"
    
    @staticmethod            #第三种方法:利用静态方法方式,引用时直接用类名.Sleep()即可。
    def Sleep():
        print("I am sleeping")
    def __good(self):           #实例对象可以访问的私有方法,在类方法中可以相互调用和使用。类不能直接访问或者外部访问。
        print("good")
        return "good"
a=Person()
Person.Think("jin")
Person.Eat("jcy")
Person.Work()  #直接不带参数self就可以实现
Person.Sleep()
a.__scolia__() #魔术方法,没有私有化。
#a.__good()    #私有方法:报错了!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值