python类方法和静态方法有啥用,python中类方法,类实例方法,静态方法有何区别_1

  python类方法和静态方法有啥用,python中类方法,类实例方法,静态方法有何区别

  事实上,Python完全支持类方法甚至静态方法的定义。Python的类方法和静态方法很像,都是建议由类调用(其实也可以由对象调用)。

  类方法和静态方法的区别在于Python会自动绑定类方法的第一个参数,类方法的第一个参数(通常推荐的参数名是cls)会自动绑定到类本身;但是,静态方法不会自动绑定。

  用@ @classmethod修饰的方法是类方法;用@ @staticmethod修饰的方法是静态方法。

  下面的代码演示如何定义类方法和静态方法:

  classBird:

  由#classmethod修饰的方法是一个类方法。

  @classmethod

  定义(cls):

  Print(类方法fly: ,cls)

  由#staticmethod修饰的方法是一个静态方法。

  @静态方法

  定义信息(p):

  打印(“静态方法信息:”,第页)

  #调用class方法,Bird类会自动绑定到第一个参数

  Bird.fly()#

  #调用静态方法,它不会自动绑定,所以程序必须手动绑定第一个参数。

  Bird.info(crazyit )

  #创建一个鸟对象

  b=鸟()

  #使用对象调用fly()类方法,但实际上仍然使用类调用,

  #所以第一个参数仍然自动绑定到Bird类

  b.fly()#

  #使用对象调用info()静态方法,但仍使用类调用,

  #所以程序必须为第一个参数执行绑定

  B.info(fkit )从上面加粗的代码可以看出,用@ @classmethod修饰的方法是一个类方法。这个类方法定义了一个cls参数,该参数将自动绑定到Bird类本身。Python总是会把类方法的第一个参数绑定到类本身,比如代码和的执行效果,不管程序是用类还是用对象调用方法。

  上面的程序还通过使用@ @staticmethod定义了一个静态方法。该程序还可以通过使用类或对象来调用静态方法。无论以哪种方式调用,Python都不会对静态方法进行自动绑定。

  用Python编程时,一般不需要使用类方法或者静态方法。程序可以使用函数来代替类方法或静态方法。但是在特殊情况下(比如使用工厂模式),类方法或者静态方法也是不错的选择。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: