打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python中的静态方法和类成员方法简介

python没有和C++中static关键字,它的静态方法是怎样的呢?还有其它语言中少有的类方法又是神马?python中实现静态方法和类方法都是依赖于python的修饰器来实现的。


  1. class MyClass:  
  2.   
  3.     def  method(self):  
  4.    # 对象方法
  5.            print("method")  
  6.  
  7.     @staticmethod  
  8.     def  staticMethod():  # 静态方法
  9.             print("static method")  
  10.  
  11.      @classmethod  


  12.      def classMethod(cls):  # 类方法
  13.            print("class method")  
 
对象方法有self参数,类方法有cls参数,静态方法是不需要这些附加参数的。

Python的静态方法和类成员方法都可以被类或实例访问,静态方法和类成员方法都是无法访问实例变量的,但可以访问类变量(静态变量);静态方法有点像函数工具库的作用,而类成员方法则更接近类似Java面向对象概念中的静态方法。 

class TestClassMethod(object):    METHOD = 'method'  # 静态变量(类变量)    def __init__(self):        self.name = 'leon'    def test1(self):        print("test1:对象方法")        print(self)        print(self.name)  # 可以访问实例变量name,也可以访问静态变量METHOD        print("Method=", TestClassMethod.METHOD)    @classmethod    def test2(cls):        print("test2: 类方法无法访问实例变量name,可以访问静态变量METHOD")        print(cls)        print("Method=", TestClassMethod.METHOD)        # print(self.name)  # 出错        print('----------------')    @staticmethod    def test3():        print('test3:静态方法无法访问实例变量name,可以访问静态变量METHOD')        print("Method=", TestClassMethod.METHOD)a = TestClassMethod()a.test1()  # 静态方法和类成员方法都可以被类或实例访问a.test2()a.test3()TestClassMethod.test3()



本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python中的面向对象编程详解(上)
python的类方法和静态方法
python 静态属性、静态方法、静态类
下划线用法
Python中的函数和方法
Python学习:类和实例
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服