python的cls,self,classmethod,staticmethod
python的cls,self,classmethod,staticmethod
突然帅了 发表于3年前
python的cls,self,classmethod,staticmethod
  • 发表于 3年前
  • 阅读 9
  • 收藏 1
  • 点赞 0
  • 评论 0

腾讯云 技术升级10大核心产品年终让利>>>   

python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种,

一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;

二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;

三是在def前面加上@staticmethod ,这种类方法是静态的类方法,类似于c++的静态函数,他的一个特点是参数可以为空,同样支持类名和对象两种调用方式;

下面上代码。

    class A(object):  
        bar = 1  
        def foo(self):  
            print 'foo'  
     
        @staticmethod  
        def static_foo():  
            print 'static_foo'  
            print A.bar  
     
        @classmethod  
        def class_foo(cls):  
            print 'class_foo'  
            print cls.bar  
            cls().foo()  
      
    A.static_foo()  
    A.class_foo()

输出:

static_foo
1
class_foo
1
foo


共有 人打赏支持
粉丝 9
博文 86
码字总数 28698
×
突然帅了
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: