[python整理]@staticmethod和@classmethod的作用

系统 1542 0

前言

知识在于细节,整理很重要。

            
              在python中,有
              
                3
              
              类方法:

              
                1
              
              ) 静态方法
              
                (
              
              staticmethod
              
                )
              
              
                2
              
              ) 类方法(classmethod)

              
                3
              
              
                )
              
               实例方法

            
          

其中静态方法和类方法是不需要进行实例就可以直接调用,语法格式:

            
              类名
              
                .
              
              方法名

            
          

具体举个例子说明

            
              
                def
              
              
                func
              
              
                (
              
              x
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "hello,我是常用方法"
              
              
                )
              
              
                class
              
              
                Fun
              
              
                :
              
              
                def
              
              
                func1
              
              
                (
              
              self
              
                ,
              
              x
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "hello,我是类中方法"
              
              
                ,
              
              x
              
                ,
              
              self
              
                )
              
              
       
   @
              
                classmethod
              
              
                def
              
              
                func2
              
              
                (
              
              cls
              
                ,
              
              x
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "hello,我是类中方法"
              
              
                ,
              
              cls
              
                ,
              
              x
              
                )
              
              
       
    @
              
                staticmethod
              
              
                def
              
              
                func3
              
              
                (
              
              x
              
                )
              
              
                :
              
              
                print
              
              
                (
              
              
                "hello,我是类中方法"
              
              
                ,
              
              x
              
                )
              
            
          

self与cls区别

            
              
                1
              
               self表示一个具体的实例本身
如果用了staticmethod
              
                ,
              
              那么就可以无视这个self
              
                ,
              
              将这个方法当成一个普通的函数使用

              
                2
              
               cls 表示这个类本身

              
                3
              
               类先调用__new__方法,返回该类的实例对象,这个实例对象就是__init__方法的第一个参数self
              
                ,
              
              即self是__new__的返回值

            
          

调用形式
1. 普通方法

            
              func
              
                (
              
              
                )
              
              
                #普通方法调用
              
            
          

2. 类中普通方法

            
              f 
              
                =
              
               Fun
              
                (
              
              
                )
              
              
                # 实例化类
              
              
f
              
                .
              
              func1
              
                (
              
              
                )
              
              
                #普通方法调用
              
            
          

3. 类中静态方法

            
              Fun
              
                .
              
              func2
              
                (
              
              
                123
              
              
                )
              
            
          

4. 类中静态方法

            
              Fun
              
                .
              
              func3
              
                (
              
              
                123
              
              
                )
              
            
          

资源下载
资源下载


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论