深入解析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程序与C程序的结合使用
Apr 07 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
Jul 13 Python
python爬取m3u8连接的视频
Feb 28 Python
详解Python读取yaml文件多层菜单
Mar 23 Python
Django中的用户身份验证示例详解
Aug 07 Python
Python实现CNN的多通道输入实例
Jan 17 Python
Python使用sqlite3模块内置数据库
May 07 Python
在pytorch中动态调整优化器的学习率方式
Jun 24 Python
Python+Kepler.gl实现时间轮播地图过程解析
Jul 20 Python
简述python&pytorch 随机种子的实现
Oct 07 Python
Python可视化学习之matplotlib内置单颜色
Feb 24 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 GD 图像处理组件的常用函数总结
2010/04/28 PHP
php curl模拟post请求小实例
2013/11/13 PHP
php将远程图片保存到本地服务器的实现代码
2015/08/03 PHP
在UpdatePanel内jquery easyui效果失效的解决方法
2010/04/11 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
Jquery插件编写简明教程
2014/03/25 Javascript
一个JavaScript去除字符串末尾的空白实例代码
2014/09/22 Javascript
jQuery插件Tmpl的简单使用方法
2015/04/27 Javascript
javascript中Array()数组函数详解
2015/08/23 Javascript
javascript实现dom元素可拖动
2016/03/21 Javascript
JS实现列表的响应式排版(推荐)
2016/09/01 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
使用ef6创建oracle数据库的实体模型遇到的问题及解决方案
2017/11/09 Javascript
基于vue2实现上拉加载功能
2017/11/28 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
基于vue实现微博三方登录流程解析
2020/11/04 Javascript
Python使用OpenCV进行标定
2018/05/08 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
python操作yaml说明
2020/04/08 Python
python和c语言哪个更适合初学者
2020/06/22 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
Omio西班牙:全欧洲低价大巴、火车和航班搜索和比价
2017/02/11 全球购物
ZINVO手表官网:男士和女士手表
2019/03/10 全球购物
中层干部岗位职责
2013/12/18 职场文书
中级会计职业生涯规划范文
2014/01/16 职场文书
房产代理公证处委托书
2014/04/04 职场文书
奖学金个人总结
2015/03/04 职场文书
2015应届毕业生自荐信范文
2015/03/05 职场文书
施工安全保证书
2015/05/09 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android
【D4DJ】美少女DJ企划 动画将于明年冬季开播第2季
2022/04/11 日漫