python中类方法、类实例方法、静态方法的使用与区别
2013-03-19 22:33
609 查看
使用方法:
Python代码
![](http://stonelee.javaeye.com/images/icon_star.png)
class A(object):
def foo(self,x):
#类实例方法
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(cls,x):
#类方法
print "executing class_foo(%s,%s)"%(cls,x)
@staticmethod
def static_foo(x):
#静态方法
print "executing static_foo(%s)"%x
http://blog.163.com/yang_jianli/blog/static/161990006201122411586729/
调用方法:
Python代码
a = A()
a.foo(1) //print : executing foo(<__main__.A object at 0xb77d67ec>,1)
a.class_foo(1) //executing class_foo(<class '__main__.A'>,1)
A.class_foo(1) //executing class_foo(<class '__main__.A'>,1)
a.static_foo(1) //executing static_foo(1)
A.static_foo(1) //executing static_foo(1)
区别:
类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用
类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数
Python代码
![](http://stonelee.javaeye.com/images/icon_star.png)
class A(object):
def foo(self,x):
#类实例方法
print "executing foo(%s,%s)"%(self,x)
@classmethod
def class_foo(cls,x):
#类方法
print "executing class_foo(%s,%s)"%(cls,x)
@staticmethod
def static_foo(x):
#静态方法
print "executing static_foo(%s)"%x
http://blog.163.com/yang_jianli/blog/static/161990006201122411586729/
调用方法:
Python代码
a = A()
a.foo(1) //print : executing foo(<__main__.A object at 0xb77d67ec>,1)
a.class_foo(1) //executing class_foo(<class '__main__.A'>,1)
A.class_foo(1) //executing class_foo(<class '__main__.A'>,1)
a.static_foo(1) //executing static_foo(1)
A.static_foo(1) //executing static_foo(1)
区别:
类方法和静态方法都可以被类和类实例调用,类实例方法仅可以被类实例调用
类方法的隐含调用参数是类,而类实例方法的隐含调用参数是类的实例,静态方法没有隐含调用参数
相关文章推荐
- python中类方法、类实例方法、静态方法的使用与区别
- python中类方法、类实例方法、静态方法的使用与区别
- python中类方法、类实例方法、静态方法的使用与区别
- python中类方法、类实例方法、静态方法的使用与区别
- python中类方法、类实例方法、静态方法的使用与区别
- 【Python】实例方法、类方法、静态方法之间的区别
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python——class的基础知识(Python的实例方法,类方法,静态方法之间的区别及调用关系)
- Python 实例方法、类方法、静态方法的区别与作用
- Python中实例方法,静态方法,类方法的区别详解
- 【Python】实例方法、类方法、静态方法之间区别(转)
- Python类中实例方法、类方法及静态方法的调用区别
- Python的实例方法,类方法,静态方法之间的区别及调用关系
- Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的
- python中实例方法、类方法、静态方法的区别
- python 类实例方法,类方法和类静态方法的区别
- Java内存的一点理解, 静态方法和实例方法的区别及使用场景
- python socket编程入门(编写server实例)+send 与sendall的区别与使用方法