level 6
YS易小唐
楼主
python类有三种方法。
1.一般方法,即不加任何修饰的,直接用def定义的方法。如:

2.staticmethod方法
经过staticmethod修饰过的类方法无需实例化即可被调用,而且该类方法不再需要self作为第一参数。

这样做的好处是,以后重构类的时候不需要修改init函数,只要额外添加需要处理的函数,然后使用staticmethod修饰即可。
3.classmethod 修饰的方法。类方法经 classmethod 修饰后无需实例化即可被调用,而且该类方法的第一参数不再是self,而是cls,表示类本身。

下面这个例子可以体现它的用途:

这样子等于先调用get_date()对字符串进行处理,然后才使用Data_test的构造函数初始化。
这种用法爬虫框架scrapy有经常用,scrapy提供一个settings.py文件,开发者可以根据自己的实际情况设置一些值。需要获取这些值的类都有一个被classmethod方法修饰的from_settings()函数。这样做的好处是,可以动态实例化一个类,增加代码的灵活性。
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。
2021年03月10日 09点03分
1
1.一般方法,即不加任何修饰的,直接用def定义的方法。如:

2.staticmethod方法经过staticmethod修饰过的类方法无需实例化即可被调用,而且该类方法不再需要self作为第一参数。

这样做的好处是,以后重构类的时候不需要修改init函数,只要额外添加需要处理的函数,然后使用staticmethod修饰即可。3.classmethod 修饰的方法。类方法经 classmethod 修饰后无需实例化即可被调用,而且该类方法的第一参数不再是self,而是cls,表示类本身。

下面这个例子可以体现它的用途:
这样子等于先调用get_date()对字符串进行处理,然后才使用Data_test的构造函数初始化。这种用法爬虫框架scrapy有经常用,scrapy提供一个settings.py文件,开发者可以根据自己的实际情况设置一些值。需要获取这些值的类都有一个被classmethod方法修饰的from_settings()函数。这样做的好处是,可以动态实例化一个类,增加代码的灵活性。
本文转载自互联网、仅供学习交流,内容版权归原作者所有,如涉作品、版权和其他问题请联系我们删除处理。
特别说明:本文旨在技术交流,请勿将涉及的技术用于非法用途,否则一切后果自负。如果您觉得我们侵犯了您的合法权益,请联系我们予以处理。