类方法

博客介绍了Python中类方法和静态方法的使用。类方法需用@classmethod装饰器,第一个参数一般为cls;可通过类对象和实例对象调用。静态方法用@staticmethod装饰器,是类里普通函数,无需传self和cls,同样可由类对象和实例对象调用,还提及类方法可修改类属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@classmethod:装饰器 固定写法
类方法:
1.参数的书写问题,第一个参数一般写(cls)
2.加上装饰器,@classmethod标注为类方法。
调用:
1.类对象:类名.类方法名
2.实例对象:创建一个实例对象。实例对象.类方法的名

@classmethod的使用

class Person(object):
    country='中国'#类属性

    @classmethod#装饰器 固定写法
    def countryInfo(cls):
        print('此时已经调用了类方法')


    def __init__(self,name,age,gender):
        self.name=name
        self.age=age
        self.gender=gender

    def personInfo(self):
        print('姓名:',self.name,'年龄:',self.age,'性别:',self.gender)

if __name__ == '__main__':
    #按照类对象进行调用
    #类名.类方法的名
    Person.countryInfo()

    #使用实例对象调用
    ming=Person('小明',18,'boy')
    #初始化一个实例对象
    #实例对象.类方法的名
    ming.countryInfo()

@staticmethod.()静态方法,()内没有任何东西补充
可放在类外面写
类方法:
1.使用装饰器@staticmethod
2.就是类里面的普通函数,不用传self,cls
调用:
1.类对象:类名.类方法名
2.实例对象:创建一个实例对象。实例对象.类方法的名

类方法修改类属性以及@staticmethod的使用

class Hello(object):
    #类方法修改类属性
    gender="boy"

    @classmethod
    def helloInfo(cls):
        print("这个人的性别:",cls.gender)

    @classmethod
    def changGender(cls,newgender):
        cls.gender=newgender
        print("现在这个人的性别:",cls.gender)

    @staticmethod
    def B():
        print('有无数种人')


if __name__ == '__main__':
    Hello.helloInfo()
    Hello.changGender('boy')
    Hello.changGender("boy and girl")
    Hello.changGender("girl")

    ming=Hello
    ming.helloInfo()
    ming.changGender("法国girl")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值