python中怎么使用类方法和静态方法
小编给大家分享一下python中怎么使用类方法和静态方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
类方法
classPeople:country='China'#类方法用classmethod来修饰@classmethod#通过标识符来表示下方方法为类方法defget_country(cls):#习惯性使用clsreturncls.country#访问类属性passpassprint(People.get_country())#通过类对象去引用p=People()print('实例对象访问%s'%p.get_country())#通过实例对象去访问
classPeople:country='China'#类方法用classmethod来修饰@classmethod#通过标识符来表示下方方法为类方法defget_country(cls):#习惯性使用clsreturncls.country#访问类属性pass@classmethoddefchange_country(cls,data):cls.country=data#修改类属性的值在类方法中passprint(People.get_country())#通过类对象去引用p=People()print('实例对象访问%s'%p.get_country())People.change_country('英')print(People.get_country())
静态方法
classPeople:country='China'#类方法用classmethod来修饰@classmethod#通过标识符来表示下方方法为类方法defget_country(cls):#习惯性使用clsreturncls.country#访问类属性pass@classmethoddefchange_country(cls,data):cls.country=data#修改类属性的值在类方法中pass@staticmethoddefgetData():#无需传参数returnPeople.countrypassprint(People.getData())#可以访问#print(People.get_country())#通过类对象去引用p=People()print(People.getData())#可以访问注意一般情况下我们不会通过实例对象去访问静态方法
为什么要使用静态方法呢?
由于静态方法主要来存放逻辑性的代码 本身和类以及实例对象没有交互
也就是说 在静态方法中 不会涉及到类中方法和属性的操作
数据资源能够得到有效的充分利用
#demo返回当前的系统时间importtime#引入时间模块classTimeTest:def__init__(self,hour,min,second):self.hour=hourself.min=minself.second=second@staticmethod#直接定义为静态方法不需要实例属性defshowtime():returntime.strftime('%H:%M:%S',time.localtime())passprint(TimeTest.showtime())t=TimeTest(2,10,15)print(t.showtime())#无必要直接使用静态方法输出仍是导入时间
复习
看完了这篇文章,相信你对“python中怎么使用类方法和静态方法”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!