深入解析python中的实例方法、类方法和静态方法

 更新时间:2019年03月11日 11:25:57   作者:李嘉豪554  
这篇文章主要介绍了python中的实例方法、类方法和静态方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1、实例方法/对象方法

实例方法或者叫对象方法,指的是我们在类中定义的普通方法。
只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身

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 Trie树实现字典排序

    Python Trie树实现字典排序

    Trie树是一种很常用的树结构,它被广泛用于各个方面,比如字符串检索、中文分词、求字符串最长公共前缀和字典排序等等,而且在输入法中也能看到Trie树的身影
    2014-03-03
  • Django中模型Model添加JSON类型字段的方法

    Django中模型Model添加JSON类型字段的方法

    这篇文章主要介绍了Django中模型Model添加JSON类型字段的方法,实例分析了Python的Django框架模型使用技巧,需要的朋友可以参考下
    2015-06-06
  • Pyspark读取parquet数据过程解析

    Pyspark读取parquet数据过程解析

    这篇文章主要介绍了pyspark读取parquet数据过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python的Flask框架与数据库连接的教程

    Python的Flask框架与数据库连接的教程

    这篇文章主要介绍了Python的Flask框架与数据库连接的教程,是Flask框架学习当中的基本知识,需要的朋友可以参考下
    2015-04-04
  • keras 实现轻量级网络ShuffleNet教程

    keras 实现轻量级网络ShuffleNet教程

    这篇文章主要介绍了keras 实现轻量级网络ShuffleNet教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • 解决TensorFlow程序无限制占用GPU的方法

    解决TensorFlow程序无限制占用GPU的方法

    这篇文章主要介绍了解决TensorFlow程序无限制占用GPU的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • python使用 cx_Oracle 模块进行查询操作示例

    python使用 cx_Oracle 模块进行查询操作示例

    这篇文章主要介绍了python使用 cx_Oracle 模块进行查询操作,结合实例形式分析了Python使用cx_Oracle模块进行数据库的基本连接、查询、输出等相关操作技巧,需要的朋友可以参考下
    2019-11-11
  • Pytorch平均池化nn.AvgPool2d()使用方法实例

    Pytorch平均池化nn.AvgPool2d()使用方法实例

    平均池化层,又叫平均汇聚层,下面这篇文章主要给大家介绍了关于Pytorch平均池化nn.AvgPool2d()使用方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-02-02
  • python正向最大匹配分词和逆向最大匹配分词的实例

    python正向最大匹配分词和逆向最大匹配分词的实例

    今天小编就为大家分享一篇python正向最大匹配分词和逆向最大匹配分词的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • 教你用Python实现短信验证码的发送

    教你用Python实现短信验证码的发送

    当我们在注册一个网页时,有的网页会让必须要短信验证、邮箱验证,才可以进行账号的注册,下面这篇文章主要给大家介绍了关于用Python实现短信验证码发送的相关资料,需要的朋友可以参考下
    2022-12-12

最新评论