深入解析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 相关文章推荐
详解Python编程中time模块的使用
Nov 20 Python
Python面向对象编程中关于类和方法的学习笔记
Jun 30 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
解决Pandas的DataFrame输出截断和省略的问题
Feb 08 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
python并发编程多进程 模拟抢票实现过程
Aug 20 Python
Python使用Pandas库常见操作详解
Jan 16 Python
Selenium webdriver添加cookie实现过程详解
Aug 12 Python
去除python中的字符串空格的简单方法
Dec 22 Python
详解使用scrapy进行模拟登陆三种方式
Feb 21 Python
教你怎么用python实现字符串转日期
May 24 Python
高考要来啦!用Python爬取历年高考数据并分析
Jun 03 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下利用header()函数设置浏览器缓存的代码
2010/09/01 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
Javascript的闭包
2009/12/31 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
document.getElementById为空或不是对象的解决方法
2010/01/24 Javascript
Js获取事件对象代码
2010/08/05 Javascript
JS鼠标事件大全 推荐收藏
2011/11/01 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
使用js Math.random()函数生成n到m间的随机数字
2014/10/09 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
一款简单的jQuery图片标注效果附源码下载
2016/03/22 Javascript
js学习之----深入理解闭包
2016/11/21 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
利用JQuery实现datatables插件的增加和删除行功能
2017/01/06 Javascript
zTree实现节点修改的实时刷新功能
2017/03/20 Javascript
vue2.0移除或更改的一些东西(移除index key)
2017/08/28 Javascript
在vue和element-ui的table中实现分页复选功能
2019/12/04 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
寻找网站后台地址的python脚本
2014/09/01 Python
Python 常用string函数详解
2016/05/30 Python
Python 3 判断2个字典相同
2019/08/06 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
python绘制规则网络图形实例
2019/12/09 Python
Django模板标签{% for %}循环,获取制定条数据实例
2020/05/14 Python
交通事故检查书范文
2014/01/30 职场文书
生物技术专业求职信
2014/06/10 职场文书
村委会贫困证明范本
2014/09/17 职场文书
教师批评与自我批评材料
2014/10/16 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
前台岗位职责
2015/02/13 职场文书
幼儿园辞职书
2015/02/26 职场文书
走进科学观后感
2015/06/18 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python