• python 类中的三种方法


    经常在使用python时都会用到类,但是类中的方法有几种类型有些人可能真不知道。其实python类中的方法有3种类型:

    1、实例方法

    2、静态方法

    3、类方法

     1 class DoExcel():
     2 
     3     def __init__(self,filename,sheetname):
     4         self.filename = filename
     5         self.sheetname = sheetname
     6 
     7     #实例方法,只能通过实例来调用,第一个参数必须是self,表示实例本身;也可以传其他参数
     8     def get_data(self):
     9         print(self.name)  #可以调用类方法中的变量
    10         heads = self.get_head()
    11         pass
    12 
    13     #静态方法,没有必须传的参数;也可以传其他参数
    14     @staticmethod
    15     def add_num():
    16         return 1+2
    17 
    18     #类方法,第一个参数必须是cls,表示class/类本身;也可以传其他参数
    19     @classmethod
    20     def mod_num(cls):
    21         cls.name = 'test_methods'
    22         return 123%7

    调用的不同:

    1、实例方法仅能通过实例调用

    2、静态方法和类方法可以用实例调用也可以直接通过类名调用

     1     datas = DoExcel('test_data.xlsx','datas') #初始化一个实例,必须要传初始化函数的参数
     2     # 实例方法的调用 通过实例调用
     3     datas.get_data()
     4 
     5     # 静态方法的调用 方法一:通过实例调用
     6     datas.add_num()
     7     # 静态方法的调用 方法二:通过类名调用
     8     DoExcel.add_num()
     9 
    10     # 类方法的调用 方法一:通过实例调用
    11     datas.mod_num()
    12     # 类方法的调用 方法二:通过类名调用
    13     DoExcel.mod_num()

    静态方法和类方法的区别

    1、类方法第一个参数必须传入cls,表示类本身;

    2、类方法里用cls定义的变量等,可以在其他的实例方法中用self进行使用;静态方法无该功能;

  • 相关阅读:
    zabbix自定义监控mysql
    [学习笔记]动态树Link-Cut-Tree
    关于 /etc/zabbix/zabbix_agentd.conf 文件 Hostname 文件的说明
    NOIP2018 游记
    Centos7安装Zabbix3.4
    [学习笔记]动态dp
    Java实现 泊松分酒
    关于使用索引的一些经验
    OI生涯回忆录 2017.9.10~2018.11.11
    覆盖索引小结
  • 原文地址:https://www.cnblogs.com/youreyebows/p/16343706.html
Copyright © 2020-2023  润新知