@clssmenthod(类方法) 与 @staticmethod(静态方法) 与类下面的函数的区别:

1.@classmethod修饰的方法def name(cls)需要通过cls参数传递当前类本身。

2.@staticmethod修饰的方法def name()不需要传递参数他和普通的函数是一样的。

3.类下面的函数def name(self)需要再方法里面加个self参数隐式的传递当前类对象的本身。

1、@clssmenthod 的使用

class class_name():

  c=12  #这叫类属性

  def __init__(self,a,b):

    self.a=a   #这叫对象属性

    self.b=b

  @clssmenthod

  def  name(cls):

    cls().age()    #调用类里面的方法

    pass

  def  age(self):

    pass

#调用时候不用实例化这个类,直接类名字.方法名()就行了,要实例化也可以。例如:class_name().name或class_name.name()

#可以调用其他方法的类属性值或者其他方法,例如:cls.age(),但是不能调用对象属性  。

#调用类里面的方法,例如:cls().age()

2、@staticmethod 的使用 (使用一般是,一个函数如果 和类没有关系,和对象也没有关系的时候,就可以使用静态方法)

class class_name():

  c=12 #这叫类属性

  def __init__(self,a,b):

    self.a=a #这叫对象属性

    self.b=b

  @staticmethod

  def  name():

    pass

#调用时候不用实例化这个类,直接类名字.方法名()就行了,要实例化也可以。例如:class_name().name或class_name.name()

#这种方法不可以调用其他方法的属性值与其他方法

class_name.name()

3、类下面的函数的使用

class class_name():

  def __init__(self,a,b):

    pass

  def  name(self):

    pass

#调用时候需要实例化这个类,也需要传递参数,例如:class_name(a,b).name()

最新文章

  1. Flume NG Getting Started(Flume NG 新手入门指南)
  2. strstr函数
  3. 给select添加自定义值和选项
  4. PHP 文件与目录操作函数总结
  5. cf 700 B Connecting Universities
  6. windows下mongodb安装与使用
  7. Hadoop学习9--动态增加datanode
  8. iPad用户使用Mac和Windows应用软件-记Parallels Access使用体验
  9. js dom
  10. Android_ViewFlipper
  11. Web Service和Servlet的区别(转)
  12. 一个小时快速搭建微信小程序
  13. Tcl与Design Compiler (十一)——其他的时序约束选项(二)
  14. python第二篇博客,关于数据类型的详细讲解
  15. java第5章学习总结
  16. [NOIp2009] $Hankson$ 的趣味题
  17. WebSphere MQ中的CCSID
  18. 自动化脚本编写环境部署_win7(RF)
  19. 3D模板阴影原理
  20. 【C++】不要依赖编译器的默认初始值

热门文章

  1. 什么情况下用vue.use方法
  2. Codeforces Round #624 (Div. 3) F
  3. linux 配置LVM
  4. 【Python】文件下载小助手
  5. 《爬虫学习》(三)(requests库使用)
  6. js加密(六)QB.com
  7. Plastic Sprayers Manufacturer -Plastic Spray Bottle Product Features, Nozzle Properties
  8. PAT 1017 Queueing at Bank (模拟)
  9. 【应急响应】Windows 安全加固
  10. python中的基本类型