Python中的实例方法、类方法、静态方法和普通方法
2024-10-01 21:50:57
为了辨析它们的差别,写了如下代码:
class C: def self_method(self, a):
return a @classmethod
def class_method(cls, a):
return a @staticmethod
def static_method(a):
return a def method(a):
return a if __name__ == '__main__':
c = C()
print(c.self_method('self method'))
print(c.class_method('class method'))
print(c.static_method('static method'))
# print(c.method('method')) 运行出错
# print(C.self_method('self method')) 运行出错
print(C.class_method('class method'))
print(C.static_method('static method'))
print(C.method('method'))
因此:
- 实例方法定义时第一个参数为类的一个实例(self),调用时必须通过实例调用。可以访问实例属性和方法。
- 类方法使用@classmethod装饰,第一个参数为类(cls),调用时可以通过类的实例或者类本身来调用。可以访问类属性和方法。
- 静态方法使用@staticmethod装饰,调用时可以使用类的实例或者类本身来调用。
- 普通方法其实是在类中定义了一个普通函数,调用时必须通过类本身来调用。
最新文章
- hibernate 中根据id删除一条记录的语句
- CSS3 animation 动画
- 《TCP/IP详解 卷1:协议》读书笔记
- [No000039]操作系统Operating Systems用户级线程User Threads
- struts1
- Tomcat 使用说明
- 获取手机的gps定位
- 【poj1274】 The Perfect Stall
- 用MSBuild和Jenkins搭建持续集成环境 - 转
- 【转】Android下编译jni库的二种方法(含示例) -- 不错
- 解决Visual Studio For Mac Restore失败的问题
- HDU - 3567 IDA* + 曼哈顿距离 + 康托 [kuangbin带你飞]专题二
- Python_day_01
- JavaSE_坚持读源码_Object对象_Java1.7
- mysql-索引-日志
- [BUAA_SE_2017]案例分析-Week3
- centos 打包报错Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
- Mysql 6.0安装过程(截图放不上去)
- UltraCompare 激活
- Find a way--hdu2612
热门文章
- python全栈开发 生成器 :生成器函数,推导式及生成器表达式
- powerdesigenr设置主外键颜色
- as3.0用了视频组件,导致视频打开后就全屏,加一下代码就行
- 高级测试岗位面试题---MARK
- C/C++ typedef用法详解(真的很详细)
- 3. Longest Substring Without Repeating Characters (ASCII码128个,建立哈西表)
- js常用的数组,,字符串,,Math..正则方法
- 842. Split Array into Fibonacci Sequence能否把数列返回成斐波那契数列
- POST请求测试地址
- 云计算之 PaaS详解