深入解析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 排列组合之itertools
Mar 20 Python
Python去掉字符串中空格的方法
Mar 11 Python
Python入门篇之列表和元组
Oct 17 Python
Python创建文件和追加文件内容实例
Oct 21 Python
python读取word文档的方法
May 09 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
Python中基础的socket编程实战攻略
Jun 01 Python
python 调用pyautogui 实时获取鼠标的位置、移动鼠标的方法
Aug 27 Python
django重新生成数据库中的某张表方法
Aug 28 Python
django框架auth模块用法实例详解
Dec 10 Python
tensorflow中tf.slice和tf.gather切片函数的使用
Jan 19 Python
python GUI库图形界面开发之PyQt5窗口控件QWidget详细使用方法
Feb 26 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桌面中心(一) 创建数据库
2007/03/11 PHP
php字符串截取的简单方法
2013/07/04 PHP
codeigniter框架The URI you submitted has disallowed characters错误解决方法
2014/05/06 PHP
PHP学习笔记(一) 简单了解PHP
2014/08/04 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
js实现无缝循环滚动
2020/06/23 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
真正好用的js验证上传文件大小的简单方法
2016/10/27 Javascript
javascript高仿热血传奇游戏实现代码
2018/02/22 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
前端axios下载excel文件(二进制)的处理方法
2018/07/31 Javascript
移动端自适应flexible.js的使用方法(不用三大框架,仅写一个单html页面使用)推荐
2019/04/02 Javascript
JS隐藏号码中间4位代码实例
2019/04/09 Javascript
详解Vue依赖收集引发的问题
2019/04/22 Javascript
JS实现简单日历特效
2020/01/03 Javascript
js防抖函数和节流函数使用场景和实现区别示例分析
2020/04/11 Javascript
vue实现淘宝购物车功能
2020/04/20 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
python2.7到3.x迁移指南
2018/02/01 Python
Python中的heapq模块源码详析
2019/01/08 Python
对Django中内置的User模型实例详解
2019/08/16 Python
python 浮点数四舍五入需要注意的地方
2020/08/18 Python
python 实现朴素贝叶斯算法的示例
2020/09/30 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
浅析HTML5 meta viewport参数
2020/10/28 HTML / CSS
goodhealth官方海外旗舰店:新西兰国民营养师
2017/12/15 全球购物
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
教师档案管理制度
2014/01/23 职场文书
个人求职信范例
2014/01/29 职场文书
降消项目实施方案
2014/03/30 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
教师党员自我剖析材料
2014/09/29 职场文书
Python Django模型详解
2021/10/05 Python