python 的@classmethod &&@staticmethod
2016-05-26 06:25
543 查看
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 a=A()
一般方法将实例对象本身隐式传入方法中作为第一个参数:
a.foo(1) # executing foo(<__main__.A object at 0xb7dbef0c>,1)
@classmethod方法将实例对象的类作为第一个参数隐式(或显示)传入方法中作为第一个参数:
a.class_foo(1) # executing class_foo(<class '__main__.A'>,1)
@staticmethod方法既不传入实例对象本身也不传入实例对象的类作为参数
a.static_foo(1) # executing static_foo(1) A.static_foo('hi') # executing static_foo(hi)
相关文章推荐
- python package 的两种组织方式
- Python爬虫之Scrapy 1 stackoverflow示例,基本步骤
- 初试Twitter API
- python初学(2)列表 list
- ROS探索(5)——Python控制SmartCar
- 6.python字符串-内置方法列举
- Windows下python2.7.8安装图文教程
- 《python核心编程》P181
- python中编码的坑
- 利用Python的西工大校园网弱口令获取
- 禁止python在运行的时候自动生成.pyc文件
- python os模块实例(批量修改图片名称)
- 谈谈 Python 中的连接符(+、+=)
- Python:显示程序运行进度条
- Spark的HashPartitioner方式的Python实现
- Python学习笔记(一)
- Python中各种集合 list tuple set dict
- Python 中一些需要查询的东西
- Python基础(六) 基础文件操作
- Python heapq priority queue