Python实例方法、类方法、静态方法区别详解


Posted in Python onSeptember 05, 2020

1、关于参数的区别

实例方法:定义实例方法是最少有一个形参 ---> 实例对象,通常用 self

类方法:定义类方法的时候最少有一个形参 ---> 类对象,通常用 cls

静态方法:定义静态方法的时候可以不定义形参

2、关于方法定义时候添加装饰器的区别

实例方法:不需要添加装饰器

类方法:需要添加装饰器 ----> @classmethod

静态方法:需要添加装饰器 ---> @staticmethod

3、调用:

1.实例方法可以通过对象直接调用

2.但是用类名调用的时候,需要创建一个对象,并且在传递参数的时候要将对象传递进去

3.类方法可以通过类名直接调用,也可以通过对象来调用

4.静态方法可以通过类名直接调用,也可以通过对象来调用

4、补充

1.静态方法不可以继承

2.类方法不能访问实例变量,只能访问类变量

class Dog():

  age = 3   # 类变量
  def __init__(self):
    self.name = "XiaoBai"  # 实例变量

  def run(self):   # 实例方法
    print("{} years old's {} is running!".format(self.age,self.name))

  @classmethod
  def eat(cls):
    # print(cls.name)    # 类方法,不能访问实例变量(属性)
    print("XiaoHei is {} years old".format(cls.age))  # 类方法只能访问类变量

  @staticmethod
  def sleep(name):
    # 静态方法与类无关,只能类中的一个功能而已
    # 静态方法不能访问类变量和实例变量
    print("{} is sleeping".format(name))

d = Dog()
d.run()   # 通过实例化对象调用实例方法
Dog.run(d) # 通过类名称调用实例方法,需要在方法中传入实例对象
d.eat()   # 通过实例化对象调用类方法
Dog.eat()  # 通过类名称调用类方法
d.sleep("XiaoLan")  # 通过实例化对象调用静态方法
Dog.sleep("XiaoLan") # 通过类名称调用静态方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python读取json文件并将数据插入到mongodb的方法
Mar 23 Python
python中pandas.DataFrame排除特定行方法示例
Mar 12 Python
python matplotlib 注释文本箭头简单代码示例
Jan 08 Python
Python实现在tkinter中使用matplotlib绘制图形的方法示例
Jan 18 Python
解决DataFrame排序sort的问题
Jun 07 Python
python实现定时提取实时日志程序
Jun 22 Python
Python封装原理与实现方法详解
Aug 28 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
对YOLOv3模型调用时候的python接口详解
Aug 26 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
python with (as)语句实例详解
Feb 04 Python
Python爬虫入门案例之回车桌面壁纸网美女图片采集
Oct 16 Python
Python装饰器如何实现修复过程解析
Sep 05 #Python
Python JSON常用编解码方法代码实例
Sep 05 #Python
Python直接赋值及深浅拷贝原理详解
Sep 05 #Python
Python数据库封装实现代码示例解析
Sep 05 #Python
Python‘==‘ 及 ‘is‘相关原理解析
Sep 05 #Python
如何使用 Python 读取文件和照片的创建日期
Sep 05 #Python
Python filter()及reduce()函数使用方法解析
Sep 05 #Python
You might like
我的群发邮件程序
2006/10/09 PHP
php单一接口的实现方法
2015/06/20 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2012/01/21 Javascript
JS小游戏之极速快跑源码详解
2014/09/25 Javascript
js实现带关闭按钮始终显示在网页最底部工具条的方法
2015/03/02 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
将JavaScript的jQuery库中表单转化为JSON对象的方法
2015/11/17 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
用iframe实现不刷新整个页面上传图片的实例
2016/11/18 Javascript
Vue实例简单方法介绍
2017/01/20 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
JS基于对象的链表实现与使用方法示例
2019/01/31 Javascript
seajs和requirejs模块化简单案例分析
2019/08/26 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
PHP 502bad gateway原因及解决方案
2020/11/13 Javascript
python里 super类的工作原理详解
2019/06/19 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
Python headers请求头如何实现快速添加
2020/11/03 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
美国最佳在线航班预订网站:LookupFare
2019/03/26 全球购物
CK巴西官方网站:Calvin Klein巴西
2019/07/19 全球购物
Hotels.com越南:酒店预订
2019/10/29 全球购物
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
零件设计自荐信范文
2013/11/27 职场文书
销售部主管岗位职责
2013/12/18 职场文书
销售主管竞聘书
2014/03/31 职场文书
开除员工通知
2015/04/22 职场文书
2015年校务公开工作总结
2015/05/26 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
运输公司工作总结
2015/08/11 职场文书
党风廉政建设心得体会
2019/05/21 职场文书
Python多线程实用方法以及共享变量资源竞争问题
2022/04/12 Python