• python类与对象的内置函数大全(BIF)


    关于类与对象的一些常用BIF(内置函数)

    1、issubclass(class,classinfo)

    含义:如果class是classinfo的子类,则返回True,否则返回false,用来判断子类关系

    2、isinstance(objiect,classinfo)

    含义:检查一个实例对象是否属于一个类,第一个参数为实例对象,第二个为类

    3、hasattr(object,name)

    作用:测试一个对象(object)是否具有固定的属性(name),属性必须带“ ”,表明是字符串。

    4、getattr(object,name[,default])

    作用:返回一个特定对象的属性的特定值(前提是该对象具有该属性),如果该对象没有这个属性,则为了提高用户的体验,可以将第三个参数default设置为“你所访问的属性不存在”,这样当不存在属性的时候就可以返回“你所访问的属性不存在”。

    5、setattr(object,name,value)

    作用:对对象进行属性的新定义——设置新属性

    6、delattr(object,name)

    作用:用来删除对象的固定属性,如果该对象没有这个属性的话,就会抛出异常

    7、property(fget=none,fset=none,fdel=none.doc=none)

    作用:通过属性定义属性,property() 是一个比较奇葩的BIF,它的作用把方法当作属性来访问,从而提供更加友好访问方式。

    property() 返回一个可以设置属性的属性,当然如何设置属性还是需要我们人为来写代码。第一个参数是获得属性的方法名(例子中是 getx),第二个参数是设置属性的方法名(例子中是 setx),第三个参数是删除属性的方法名(例子中是 delx)。

    property() 有什么作用呢?举个例子,在上边的例题中,我们为用户提供 setx 方法名来设置 _x 属性,提供 getx 方法名来获取属性。但是有一天你心血来潮,突然想对程序进行大改,可能你需要把 setx 和 getx 修改为 set_x 和 get_x,那你不得不修改用户调用的接口,这样子的体验就非常不好。

    有了 property() 所有问题就迎刃而解了,因为像上边一样,我们为用户访问 _x 属性只提供了 x 属性。无论我们内部怎么改动,只需要相应的修改 property() 的参数,用户仍然只需要去操作 x 属性即可,对他们来说没有任何影响。

    各个内置函数举例如下,可以促进对于它们的理解:

  • 相关阅读:
    这些年学过的FPGA
    基于SoCkit的opencl实验1-基础例程
    基于8051内核的实验—流水灯
    8051内核的使用
    基于FPGA的电压表与串口通信(下)
    基于FPGA的电压表与串口通信(上)
    基于FPGA的通信信号源的设计
    基于DDS的任意波形发生器
    基于FPGA的通信系统实验
    进程间通信三(共享内存)
  • 原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/10041951.html
Copyright © 2020-2023  润新知