zoukankan      html  css  js  c++  java
  • Python中的实例方法、类方法、静态方法和普通方法

     为了辨析它们的差别,写了如下代码: 
     1 class C:
     2 
     3     def self_method(self, a):
     4         return a
     5 
     6     @classmethod
     7     def class_method(cls, a):
     8         return a
     9 
    10     @staticmethod
    11     def static_method(a):
    12         return a
    13 
    14     def method(a):
    15         return a
    16 
    17 if __name__ == '__main__':
    18   c = C()
    19   print(c.self_method('self method'))
    20   print(c.class_method('class method'))
    21   print(c.static_method('static method'))
    22   # print(c.method('method')) 运行出错
    23   # print(C.self_method('self method')) 运行出错
    24   print(C.class_method('class method'))
    25   print(C.static_method('static method'))
    26   print(C.method('method'))

    因此:

    1. 实例方法定义时第一个参数为类的一个实例(self),调用时必须通过实例调用。可以访问实例属性和方法。
    2. 类方法使用@classmethod装饰,第一个参数为类(cls),调用时可以通过类的实例或者类本身来调用。可以访问类属性和方法。
    3. 静态方法使用@staticmethod装饰,调用时可以使用类的实例或者类本身来调用。
    4. 普通方法其实是在类中定义了一个普通函数,调用时必须通过类本身来调用。
  • 相关阅读:
    JavaScript 数组
    Function类型
    javascript面向对象(一)
    javascript变量的作用域
    登陆验证
    注册验证
    php类
    二叉搜索树的 查询最小值
    二叉 搜索树查找最大值
    二叉搜索树 中查找是否存在该值
  • 原文地址:https://www.cnblogs.com/lyg-blog/p/8761299.html
Copyright © 2011-2022 走看看