深入解析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编写提取日志中的中文的脚本的方法
Apr 30 Python
Python实现Youku视频批量下载功能
Mar 14 Python
Windows下的Jupyter Notebook 安装与自定义启动(图文详解)
Feb 21 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
python爬取微信公众号文章的方法
Feb 26 Python
使用python socket分发大文件的实现方法
Jul 08 Python
Django RBAC权限管理设计过程详解
Aug 06 Python
Python:type、object、class与内置类型实例
Dec 25 Python
pytorch 指定gpu训练与多gpu并行训练示例
Dec 31 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Jupyter notebook 远程配置及SSL加密教程
Apr 14 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP命令Command模式用法实例分析
2018/08/08 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
PHP中通过getopt解析GNU C风格命令行选项
2019/11/18 PHP
JavaScript 变量基础知识
2009/11/07 Javascript
分享一个自己写的table表格排序js插件(高效简洁)
2011/10/29 Javascript
JavaScript中的无阻塞加载性能优化方案
2014/10/10 Javascript
jQuery提示效果代码分享
2014/11/20 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
JavaScript跨浏览器获取页面中相同class节点的方法
2015/03/03 Javascript
AngularJS基础 ng-paste 指令简单示例
2016/08/02 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
微信小程序之蓝牙的链接
2017/09/26 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
Vue实现本地购物车功能
2018/12/05 Javascript
详解vue 命名视图
2019/08/14 Javascript
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
2019/09/24 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
vue 授权获取微信openId操作
2020/11/13 Javascript
python3实现短网址和数字相互转换的方法
2015/04/28 Python
django 发送邮件和缓存的实现代码
2018/07/18 Python
Python内置加密模块用法解析
2019/11/25 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
印度购物网站:TATA CLiQ
2017/11/23 全球购物
船餐厅和泰晤士河餐饮游轮:Bateaux London
2018/03/19 全球购物
汉语专业应届生求职信
2013/10/01 职场文书
顶撞老师检讨书
2014/02/07 职场文书
企业精细化管理实施方案
2014/03/23 职场文书
作风大整顿心得体会
2014/09/10 职场文书
2015年度保密工作总结
2015/04/24 职场文书
让子弹飞观后感
2015/06/11 职场文书
在Docker容器中部署SQL Server
2022/04/11 Servers