• 反射须知


    反射须知

    isinstance & issubclass

    • isinstance(object, classinfo)

      如果 object 实参是 classinfo 实参的实例,或者是(直接、间接或 虚拟)子类的

      实例,则返回 true。如果 object 不是给定类型的对象,函数始终返回 false。如

      classinfo 是对象类型(或多个递归元组)的元组,如果 object 是其中的任何

      一个的实例则返回 true。 如果 classinfo 既不是类型,也不是类型元组或类型的

      递归元组,那么会触发 TypeError 异常。

    • issubclass(class, classinfo)

      如果 classclassinfo子类(直接、间接或 虚拟 的),则返回 true。

      classinfo 可以是类对象的元组,此时 classinfo 中的每个元素都会被检查。其他

      情况,会触发 TypeError 异常。


    反射

    主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。

    1. hasattr(object, name)

      该实参是一个对象和一个字符串。如果字符串是对象的属性之一的名称,则返回

      True,否则返回 False。(此功能是通过调用 getattr(object, name) 看是否

      有 AttributeError 异常来实现的。)

    2. getattr(object, name[, default])

      返回对象命名属性的值。name 必须是字符串。如果该字符串是对象的属性之

      一,则返回该属性的值。例如, getattr(x, 'foobar') 等同于 x.foobar。如

      果指定的属性不存在,且提供了 default 值,则返回它,否则触发

      AttributeError。

    3. setattr(object, name, value)

      此函数与 getattr() 两相对应。 其参数为一个对象、一个字符串和一个任意

      值。 字符串指定一个现有属性或者新增属性。 函数会将值赋给该属性,只要对

      象允许这种操作。 例如,setattr(x, 'foobar', 123) 等价于 x.foobar =

      123。

    4. delattr(object, name)

      setattr() 相关的函数。实参是一个对象和一个字符串。该字符串必须是对象的

      某个属性。如果对象允许,该函数将删除指定的属性。例如 delattr(x,

      'foobar') 等价于 del x.foobar 。


    类的内置方法

    1. _setattr_

      类中放置属性的方法

    2. _delattr_

      类中删除属性的方法

    3. _getattr_

      类中获取属性的方法

    4. _item_

      对象通过[] 中括号取值,赋值,删除值的时候,会调用

    5. _call_

      对象的调用 : 对象加括号会调用它

    6. _enter_ & __exit__

      上下文管理器,本质

    7. _str_ & __repr__

      一个是print输出的结果、一个是在交互式命令下直接写变量名的显示结果

  • 相关阅读:
    href="#" 是什么意思?
    JavaScript匿名自执行函数~function(){}
    var $this = $(this)是什么意思?
    .Ajax
    myeclipse 的Customize Perspective 没有反应
    JS中的this指向问题
    JS中$含义和用法
    JS中sessionstorage的getItem/setItem/removeItem/clear
    JS中的top是什么?
    CAD常用命令大全
  • 原文地址:https://www.cnblogs.com/Du704/p/11528986.html
Copyright © 2020-2023  润新知