• 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进行使用;静态方法无该功能;

  • 相关阅读:
    python os.walk()和os.path.walk()
    python学习之random模块
    java性能优化文章
    mysql和workbench的安装、创建实例、用户
    32位、64位与Java开发研究分析
    Web缓存
    深入分析 Java 中的中文编码问题
    eclipse+tomcat(eclipse自带插件) JSP修改后不生效问题
    今天给2010买的三星R428升级一下固态硬盘
    href="javascript:xxx(this);"和onclick="javascript:xxx(this);"的区别
  • 原文地址:https://www.cnblogs.com/youreyebows/p/16343706.html
Copyright © 2020-2023  润新知