博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python中的实例方法、类方法、静态方法和普通方法
阅读量:5070 次
发布时间:2019-06-12

本文共 890 字,大约阅读时间需要 2 分钟。

 为了辨析它们的差别,写了如下代码: 
1 class C: 2  3     def self_method(self, a): 4         return a 5  6     @classmethod 7     def class_method(cls, a): 8         return a 9 10     @staticmethod11     def static_method(a):12         return a13 14     def method(a):15         return a16 17 if __name__ == '__main__':18   c = C()19   print(c.self_method('self method'))20   print(c.class_method('class method'))21   print(c.static_method('static method'))22   # print(c.method('method')) 运行出错23   # print(C.self_method('self method')) 运行出错24   print(C.class_method('class method'))25   print(C.static_method('static method'))26   print(C.method('method'))

因此:

  1. 实例方法定义时第一个参数为类的一个实例(self),调用时必须通过实例调用。可以访问实例属性和方法。
  2. 类方法使用@classmethod装饰,第一个参数为类(cls),调用时可以通过类的实例或者类本身来调用。可以访问类属性和方法。
  3. 静态方法使用@staticmethod装饰,调用时可以使用类的实例或者类本身来调用。
  4. 普通方法其实是在类中定义了一个普通函数,调用时必须通过类本身来调用。

转载于:https://www.cnblogs.com/lyg-blog/p/8761299.html

你可能感兴趣的文章
centos redis 安装过程,解决办法
查看>>
IOS小技巧整理
查看>>
WebDriverExtensionsByC#
查看>>
我眼中的技术地图
查看>>
lc 145. Binary Tree Postorder Traversal
查看>>
sublime 配置java运行环境
查看>>
在centos上开关tomcat
查看>>
T4扩展程序
查看>>
重启rabbitmq服务
查看>>
Nginx配置实际案例
查看>>
数据库
查看>>
用双重for循环生成九九乘法表
查看>>
169. Majority Element
查看>>
[学习笔记]nodejs全局安装和本地安装的区别
查看>>
Java设计模式(3)——创建型模式之抽象工厂模式(Abstract Factory)
查看>>
Linux入门——shell脚本常用信息小结
查看>>
使用Fiddler针对Android手机网络请求抓包
查看>>
【音乐欣赏】《Siren》 - The Chainsmokers / Aazar
查看>>
模板——kmp
查看>>
移动终端网页游戏移植研发框架【带动画效果控件隐藏的方法】
查看>>