Python_类的类方法和静态方法

一、类方法
1、可以使用类和对象调用,但是建议使用类来调用,可以不创建对象,节省内存。
2、可以使用类属性和其他方法,但是不能使用对象属性和成员方法和私有方法。
3、一般用在功能比较单独,和类中其他属性和方法无关的情况下。

二、静态方法
1、可以使用类和对象调用,但是建议使用类来调用,可以不创建对象,节省内存。
2、不可以使用对象属性和成员方法和私有方法,一般也不要类属性和类方法。
3、就是一个非常普通的函数,只是写在类里面。

class Animal():
    def __init__(self,name,age,addr):
        # 前面加两下换线,表示私有属性
        self.__name = name
        self.age = age
        self.addr = addr

    def __run(self):
        # 不能使用私有属性
        # print(f'{self.name}今年{self.age}岁了,它住在{self.addr}下')
        pass

    # 类方法
    # @classmethod
    @classmethod
    def eat(cls):
        # print(cls.name)  #在类方法中不能使用对象属性和成员方法,因为没有self
        print('吃饭:',cls==Animal)

    # 静态方法
    # 相当于独立的一个函数
    @staticmethod
    def sleep():
        print('睡觉')


animal = Animal('悟空',999,'五指山')
# 不能使用对象调用方法
# animal.__run()

Animal.eat()        #类,类方法,推荐
animal.eat()        #对象.类方法
Animal.sleep()      #类,静态方法 推荐
animal.sleep()      #对象,静态方法
'''
吃饭: True
吃饭: True
睡觉
睡觉

Process finished with exit code 0


'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值