静态属性  @property 

  1. class Mom:
  2. gender = "woman"
  3. def __init__(self,name,weight):
  4. self.name = name
  5. self.weight = weight
  6. @property#静态方法
  7. #把一个方法做成
  8. def cook_dinner(self):
  9. return " %s 今天做个,蛋糕" % (self.name)
  10.  
  11. m1 = Mom('XFD',120)
  12. # print(m1.cook_dinner())#这样执行就报错了
  13. print(m1.cook_dinner)#看起来是了调用了数据属性,实际上就是调用了方法
  14. #@property 有隐藏函数属性的作用,在外展示,好像是数据属性一样

静态方法:我感觉没个卵用

  1. class Mom:
  2. gender = "woman"
  3. def __init__(self,name,weight):
  4. self.name = name
  5. self.weight = weight
  6. @staticmethod#
  7. def clean_up(a,b):#没有self 就和实例绑定
  8. return "XFD 正在擦%s,%s" % (a,b)
  9. def clean_up1(a,b):
  10. return "XFD 正在擦%s,%s" % (a,b)
  11. #
  12. print(Mom.clean_up('桌子',"凳子"))#XFD 正在擦桌子,凳子
  13. m1 = Mom("xfd",110)
  14. print(m1.clean_up('桌子',"凳子"))#实例也可以调用
  15. #@staticmethod 类的工具包
  16. #不跟类绑定,也不和实例绑定
  17. #Mom.clean_up1(1,2)这样是可以调用
  18. #m1.clean_up1(1,2) 这样不可以调用 :为什么呢?
  19. #(调用时会把自己(m1)传进去,但是我们又没有定义肯定报错咯)
  20. #加@staticmethod和不加有什么区别呢 ?
  21. 静态方法只是名义上归类管理,不能使用类变量和实例变量

@staticmethod

类方法

需求:不使用实例,怎么调用类的函数属性

  1. class Mom:
  2. gender = "woman"
  3. def __init__(self,name,weight):
  4. self.name = name
  5. self.weight = weight
  6. # @property#静态方法
  7. #把一个方法做成
  8. @classmethod#专门给类使用的方法
  9. def cook_dinner(cls):#记得这个关键字 cls
  10. # 用classmethod时,要专门给定义一个这个方法供类调用
  11. return " %s 今天做个,蛋糕" % (cls.gender)
  12.  
  13. # def cook_dinner(self):
  14. # return " %s 今天做个,蛋糕" % (self.name)
  15.  
  16. print(Mom.gender)
  17. M1 =Mom("XFD","")
  18. # print(Mom.cook_dinner(M1))#这样调用不到。
  19.  
  20. print(M1.cook_dinner())#如果使用类方法,只能通过实例来调用
  21. #类方法,那就是不通过实例,直接调用怎么办呢
  22. #@classmethod 把这个放置在类方法的前面类就可以直接调用了(cls)

类方法@classmethod

备注:类方法:记得只调用类的数据属性,不要cls. init里面的数据属性。那是实例用的!

Day 19:面向对象【类方法】静态属性/静态属性/类方法的更多相关文章

  1. Python面向对象05 /私有成员、类方法、静态方法、属性、isinstance/issubclass

    Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubclass 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/is ...

  2. python 面向对象专题(五):私有成员、类方法、静态方法、属性、isinstance/issubclass

    https://www.cnblogs.com/liubing8/p/11325421.html 目录 Python面向对象05 /私有成员.类方法.静态方法.属性.isinstance/issubc ...

  3. Python之路-面向对象&继承和多态&类属性和实例属性&类方法和静态方法

    一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面 ...

  4. Swift中的类型属性(静态变量)

    http://blog.haohtml.com/archives/15098 Swift中的类型属性(静态变量) Posted on 2014/06/13 类型属性语法 在 C 或 Objective ...

  5. 洗礼灵魂,修炼python(33)--面向对象编程(3)—特殊类方法__init__,公有属性,私有属性

    在上一篇博文里,传入参数时,是在实例化对象后且在调用方法时才传入参数,感觉是不是有点繁琐对吧?可以在实例化的时候就传入参数吗?可以的,这就是本篇博文的要讲到的构造器——__init__(两边双下划线) ...

  6. python 面向对象类成员(字段 方法 属性)

    一.字段 字段包括:普通字段和静态字段,他们在定义和使用中有所区别,而最本质的区别是内存中保存的位置不同, 普通字段属于对象 静态字段属于类 class Province: # 静态字段 countr ...

  7. day25——私有成员、类方法、静态方法、属性、isinstance和issubclass的区别

    day25 类的私有成员 当你遇到重要的数据,功能(只允许本类使用的一些方法,数据)设置成私有成员 python所有的私有成员都是纸老虎,形同虚设 类从加载时,只要遇到类中的私有成员,都会在私有成员前 ...

  8. Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type())

    Python进阶----类的结构(公有成员 , 私有成员(私有属性,私有方法),类方法,静态方法,属性) ,isinstance 和issubcalss ,元类(type()) 一丶类的结构细分    ...

  9. Python面向对象的特征跟私有属性

     面向对象的三大特征 继成.封装.多态: 继承:一个类可以继承一个或多个类,被继承的类叫做父类,继承的类叫做子类 封装:将数据和方法放在了一个类中就构成了封装 多态:指的一类事物有多重形态,一个抽象类 ...

  10. python面向对象-2深入类的属性

    在交互式环境中输入: >>> class A: a=0 def __init__(self): self.a=10 self.b=100 >>> a=A() > ...

随机推荐

  1. 1. 什么是Prometheus

    什么是Prometheus Prometheus是一个最初在SoundCloud上构建的开源系统监视和警报工具包 .自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有一个非常 ...

  2. JVM运行时数据区及对象在内存中初始化的过程

    JVM运行时数据区 Java虚拟机所管理的内存区域,也称为运行时数据区,分为以下几个运行时数据区,如图所示 程序计数器:当前程序所执行字节码的行号指示器 程序计数器(Program Counter R ...

  3. nginx支持http2协议

    1.http2协议 HTTP 2.0 的主要目标是改进传输性能,实现低延迟和高吞吐量.从另一方面看,HTTP 的高层协议语义并不会因为这次版本升级而受影响.所有HTTP 首部.值,以及它们的使用场景都 ...

  4. Module not found: Error: Can't resolve '@babel/runtime/helpers/classCallCheck' and Module not found: Error: Can't resolve '@babel/runtime/helpers/defineProperty'

    These two mistakes are really just one mistake, This is because the following file @babel/runtime ca ...

  5. tushare积分怎么获得 tushare pro 积分充值 积分转让

    本人是做量化投资的,团队转型,换了交易策略,手头有多个离职同事的闲置转让.600分:原价50元,仅需39元1500分:原价150元,仅需109元(售罄)2000分:原价200元,仅需149元5000分 ...

  6. Redis Sentinel 高可用方案

      redis 主从复制的问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 1,一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. 2,扩展主节点的读能力,分担主节点读压 ...

  7. PyCharm与git/GitHub取消关联

    如果你从github 上down下的个项目,用pycharm 打开的时候,选择了git管理,导致你只要做了修改,就会有颜失标记,即使没有强迫症,看着也很难受啊 聪敏的我赶快找度娘,总结如下解决方法 在 ...

  8. mid

    """ Cross Site Request Forgery Middleware. This module provides a middleware that imp ...

  9. Vue.js文档学习

    Vue细碎小点 生命周期钩子:created().mounted().updated().destroyed() 不要在选项属性或回调上使用箭头函数,比如 created: () => cons ...

  10. 列举 contentType: 内容类型(MIME 类型)

    常用的: 1.".doc"="application/msword" 2.".pdf"="application/pdf" ...