深入解析python中的实例方法、类方法和静态方法


Posted in Python onMarch 11, 2019

1、实例方法/对象方法

实例方法或者叫对象方法,指的是我们在类中定义的普通方法。
只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身

深入解析python中的实例方法、类方法和静态方法

2、静态方法

(1).格式:在方法上面添加 @staticmethod
(2).参数:静态方法可以有参数也可以无参数
(3).应用场景:一般用于和类对象以及实例对象无关的代码。
(4).使用方式: 类名.类方法名(或者对象名.类方法名)。

定义一个静态方法

class Game:

  @staticmethod
  def menu():
    print('------')
    print('开始[1]')
    print('暂停[2]')
    print('退出[3]')


Game.menu()

3、类方法

无需实例化,可以通过类直接调用的方法,但是方法的第一个参数接收的一定是类本身
(1).在方法上面添加@classmethod
(2).方法的参数为 cls 也可以是其他名称,但是一般默认为cls
(3).cls 指向 类对象
(5).应用场景:当一个方法中只涉及到静态属性的时候可以使用类方法(类方法用来修改类属性)。
(5).使用 可以是 对象名.类方法名。或者是 类名.类方法名

class Person:
  type = '人类'

  @classmethod
  def test(cls):
    print(cls.type)


Person.test()

举例:使用类方法对商品进行统一打折

class Goods:
  __discount = 1

  def __init__(self, name, price):
    self.name = name
    self.price = price

  @classmethod
  def change_discount(cls, new_discount):
    cls.__discount = new_discount

  @property
  def finally_price(self):
    return self.price * self.__discount


banana = Goods('香蕉', 10)
apple = Goods('苹果', 16)
Goods.change_discount(0.8)
print(banana.finally_price)
print(apple.finally_price)

Goods.change_discount(0.5)
print(banana.finally_price)
print(apple.finally_price)

输出为:

8.0
12.8
5.0
8.0

以上所述是小编给大家介绍的python中的实例方法、类方法和静态方法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
wxPython事件驱动实例详解
Sep 28 Python
详解Python的Django框架中manage命令的使用与扩展
Apr 11 Python
Python socket实现简单聊天室
Apr 01 Python
Python实现针对json中某个关键字段进行排序操作示例
Dec 25 Python
opencv实现静态手势识别 opencv实现剪刀石头布游戏
Jan 22 Python
pandas去除重复列的实现方法
Jan 29 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
Python一键安装全部依赖包的方法
Aug 12 Python
python利用openpyxl拆分多个工作表的工作簿的方法
Sep 27 Python
Python shutil模块用法实例分析
Oct 02 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 Python
python字符串判断密码强弱
Mar 18 Python
Python 函数返回值的示例代码
Mar 11 #Python
浅谈Python批处理文件夹中的txt文件
Mar 11 #Python
Python数据报表之Excel操作模块用法分析
Mar 11 #Python
Python合并同一个文件夹下所有PDF文件的方法
Mar 11 #Python
Python实现截取PDF文件中的几页代码实例
Mar 11 #Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 #Python
Python写一个基于MD5的文件监听程序
Mar 11 #Python
You might like
php 仿Comsenz安装效果代码打包提供下载
2010/05/09 PHP
PHP入门学习笔记之一
2010/10/12 PHP
php强制下载类型的实现代码
2011/04/21 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
PHP魔术方法__GET、__SET使用实例
2014/11/25 PHP
php防止CC攻击代码 php防止网页频繁刷新
2015/12/21 PHP
PHP序列化/对象注入漏洞分析
2016/04/18 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP实现二叉树深度优先遍历(前序、中序、后序)和广度优先遍历(层次)实例详解
2018/04/20 PHP
PHP读取文件或采集时解决中文乱码
2021/03/09 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
google地图的路线实现代码
2009/08/20 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
放弃用你的InnerHTML来输出HTML吧 jQuery Tmpl不详细讲解
2013/04/20 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
Google 地图API资料整理及详细介绍
2016/08/06 Javascript
Angular学习笔记之angular的$filter服务浅析
2016/11/12 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
爬虫利器Puppeteer实战
2019/01/09 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
再也不怕 JavaScript 报错了,怎么看怎么处理都在这儿
2020/12/09 Javascript
Python中logging模块的用法实例
2014/09/29 Python
解读Django框架中的低层次缓存API
2015/07/24 Python
深入浅析python继承问题
2016/05/29 Python
基于Python 的进程管理工具supervisor使用指南
2016/09/18 Python
python 异常处理总结
2016/10/18 Python
Python HTTP客户端自定义Cookie实现实例
2017/04/28 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Android基于TCP和URL协议的网络编程示例【附demo源码下载】
2018/01/23 Python
Django通用类视图实现忘记密码重置密码功能示例
2019/12/17 Python
python实现二分类和多分类的ROC曲线教程
2020/06/15 Python
纯CSS3实现鼠标悬停提示气泡效果
2014/02/28 HTML / CSS
工商企业管理实习自我鉴定
2013/12/04 职场文书
市政管理求职信范文
2014/05/07 职场文书
学子宴致辞大全
2015/07/27 职场文书