深入解析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中优化NumPy包使用性能的教程
Apr 23 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
Python读大数据txt
Mar 28 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
mac下pycharm设置python版本的图文教程
Jun 13 Python
python交互界面的退出方法
Feb 16 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
python set集合使用方法解析
Nov 05 Python
执行Python程序时模块报错问题
Mar 26 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
Python基于Faker假数据构造库
Nov 30 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 20 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与jquery设置和读取cookies
2013/08/08 PHP
PHP正则验证Email的方法
2015/06/15 PHP
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
JavaScript中的apply()方法和call()方法使用介绍
2012/07/25 Javascript
原生javascript实现获取指定元素下所有后代元素的方法
2014/10/28 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
单击按钮发送验证码,出现倒计时的简单实例
2017/03/17 Javascript
vue 中自定义指令改变data中的值
2017/06/02 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
Angular5.0 子组件通过service传递值给父组件的方法
2018/07/13 Javascript
node实现分片下载的示例代码
2018/10/17 Javascript
微信小程序实现文字无限轮播效果
2018/12/28 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
微信小程序中转义字符的处理方法
2019/03/28 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
解决vant title-active-color与title-inactive-color不生效问题
2020/11/03 Javascript
Python入门篇之数字
2014/10/20 Python
详解Python的collections模块中的deque双端队列结构
2016/07/07 Python
解决python3中自定义wsgi函数,make_server函数报错的问题
2017/11/21 Python
Python使用re模块正则提取字符串中括号内的内容示例
2018/06/01 Python
简单了解python 生成器 列表推导式 生成器表达式
2019/08/22 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
深入了解NumPy 高级索引
2020/07/24 Python
python中翻译功能translate模块实现方法
2020/12/17 Python
Old Navy加拿大官网:美式休闲服饰品牌
2017/09/26 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
屈臣氏泰国官网:Watsons TH
2021/02/23 全球购物
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
优秀的毕业生的自我评价
2013/12/12 职场文书
应届护士求职信范文
2014/01/26 职场文书
模具毕业生推荐信
2014/02/15 职场文书
学风建设演讲稿
2014/09/12 职场文书
2015年保洁工作总结范文
2015/04/28 职场文书