博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
classmethod&staticmethod 以及 __slots__
阅读量:6102 次
发布时间:2019-06-20

本文共 887 字,大约阅读时间需要 2 分钟。

  • 什么是python中的classmethod,它的用途是什么?

    • classmethod装饰器对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。

      class Demo:    @classmethod    def klassmeth(*args):        return args    """    Usage::    >>>Demo.klassmeth()    >>> (
      , 'span') """
    • klasssmeth 返回全部位置参数
    • 不管怎么样调用Demo.klassmenth,它的第一个参数始终是Demo类.
  • 什么是python中的staticmethod,它的用途是什么?

    • staticmethod是一个将类中的方法静态化,无需实例便可调用.

      #!/usr/bin/python# -*- coding: UTF-8 -*-class C(object):@staticmethoddef f():    print('runoob');C.f();          # 静态方法无需实例化cobj = C()cobj.f()        # 也可以实例化后调用
  • __slots__用于什么地方?

    • 首先我们要明白一个概念.默认情况下Python在各个实例中名为__dict__的字典里存储的实力属性,为了是底层的散列表提升访问速度,字典会消耗大量内存.
    • 通过__slots__类属性,能节省大量内存.方法事让解释器在元组中存储属性,而不是字典.
    • 继承自超类__slots__属性没有效果,Python只会使用各个类中定义的__slots__属性.
    • 定义__slots__属性之后,实例不能再有__slots__中所列名称之外的其他属性.
    • 如果把__dict__这个名称添加到__slots__中,是一个糟糕的选择.
    • 如果不把__weakref__加入__slots__,实例就不能作为弱引用的目标.

转载地址:http://yhiza.baihongyu.com/

你可能感兴趣的文章
hdu 5115(2014北京—dp)
查看>>
数据结构中常见的树(BST二叉搜索树、AVL平衡二叉树、RBT红黑树、B-树、B+树、B*树)...
查看>>
PHP读取日志里数据方法理解
查看>>
第五十七篇、AVAssetReader和AVAssetWrite 对视频进行编码
查看>>
Vivado增量式编译
查看>>
一个很好的幻灯片效果的jquery插件--kinMaxShow
查看>>
微信支付签名配置正确,但返回-1,调不出支付界面(有的手机能调起,有的不能)...
查看>>
第二周例行报告
查看>>
Spring学习(16)--- 基于Java类的配置Bean 之 基于泛型的自动装配(spring4新增)...
查看>>
实验八 sqlite数据库操作
查看>>
四种简单的排序算法(转)
查看>>
Quartz2D之着色器使用初步
查看>>
多线程条件
查看>>
Git [remote rejected] xxxx->xxxx <no such ref>修复了推送分支的错误
查看>>
Porter/Duff,图片加遮罩setColorFilter
查看>>
黄聪:VMware安装Ubuntu10.10【图解】转
查看>>
Centos 6.x 升级openssh版本
查看>>
公式推♂倒题
查看>>
vue实现点击展开,点击收起
查看>>
如何使frame能居中显示
查看>>