首页IT科技python class用法(classmethod如何在python中选择参数?)

python class用法(classmethod如何在python中选择参数?)

时间2025-08-04 08:40:58分类IT科技浏览5759
导读:说起类的调用,就绕不开对于参数的讨论,我们在之前文章中已经讨论过了静态方法对于参数的一些使用。那么,同样是我们所熟知的类方法,对于参数的使用上又有着怎样的区别呢?这里我们先在代码中调用classmethod,在运行的过程中想必就知道需要用到什么参数了。其他的不多说,下面是调用classmethod代码,大家找找参数吧。...

说起类的调用               ,就绕不开对于参数的讨论                      ,我们在之前文章中已经讨论过了静态方法对于参数的一些使用                。那么        ,同样是我们所熟知的类方法            ,对于参数的使用上又有着怎样的区别呢?这里我们先在代码中调用classmethod                      ,在运行的过程中想必就知道需要用到什么参数了                       。其他的不多说            ,下面是调用classmethod代码        ,大家找找参数吧      。

classData_test2(object): day=0 month=0 year=0 def__init__(self,year=0,month=0,day=0): self.day=day self.month=month self.year=year @classmethod defget_date(cls,string_date): #这里第一个参数是cls                      ,表示调用当前的类名 year,month,day=map(int,string_date.split(-)) date1=cls(year,month,day) #返回的是一个初始化后的类 returndate1 defout_date(self): print"year:" printself.year print"month:" printself.month print"day:" printself.day

在Date_test类里面创建一个成员函数                , 前面用了@classmethod装饰            。 它的作用就是有点像静态类    ,比静态类不一样的就是它可以传进来一个当前类作为第一个参数                        。那么如何调用呢?

r=Data_test2.get_date("2016-8-1") r.out_date()

输出:

year: 2016 month: 8 day: 1

这样子等于先调用get_date()对字符串进行处理                      ,然后才使用Data_test的构造函数初始化          。

补充classmethod与staticmethod:

这两者的区别在于                    ,classmethod增加了一个对实际调用类的引用,这带来了很多方便的地方:

方法可以判断出自己是通过基类被调用                  ,还是通过某个子类被调用

通过子类调用时                       ,方法可以返回子类的实例而非基类的实例

通过子类调用时    ,方法可以调用子类的其他classmethod

一般来说classmethod可以完全替代staticmethod        。staticmethod唯一的好处是调用时它返回的是一个真正的函数               ,而且每次调用时返回同一个实例(classmethod则会对基类和子类返回不同的bound method实例)                      ,但这点几乎从来没有什么时候是有用的                        。不过        ,staticmethod可以在子类上被重写为classmethod            ,反之亦然                      ,因此也没有必要提前将staticmethod全部改为classmethod            ,按需要使用即可              。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
日本服务器哪个最好(日本服务器租用的特点是什么) windows设置里没有恢复(Win10设置里没有恢复选项怎么办 Win10没有恢复选项解决方法)