python的cls,self,classmethod,staticmethod
2015-04-25 16:17
447 查看
python类里会出现这三个单词,self和cls都可以用别的单词代替,类的方法有三种,
一是通过def定义的 普通的一般的,需要至少传递一个参数,一般用self,这样的方法必须通过一个类的实例去访问,类似于c++中通过对象去访问;
二是在def前面加上@classmethod,这种类方法的一个特点就是可以通过类名去调用,但是也必须传递一个参数,一般用cls表示class,表示可以通过类直接调用;
三是在def前面加上@staticmethod ,这种类方法是静态的类方法,类似于c++的静态函数,他的一个特点是参数可以为空,同样支持类名和对象两种调用方式;
下面上代码。
输出:
一是通过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
相关文章推荐
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python的cls,self,classmethod,staticmethod
- python学习之self,cls,staticmethod,classmethod
- python self,cls,decorator的理解
- Python 中的 classmethod 和 staticmethod
- python中self cls init的理解
- python中classmethod和staticmethod的区别
- python classmethod,staticmethod实现
- python self,cls,decorator的理解
- python 类中staticmethod,classmethod,普通方法
- python面试常问的几个内置装饰器:@staticmethod、@classmethod和@property
- 【Python】Staticmethod和classmethod的区别
- Python 中的 classmethod 和 staticmethod 有什么具体用途?
- python 中 @classmethod 、staticmethod 和 普通方法 的区别
- 基于python中staticmethod和classmethod的区别(详解)