见贤思齐焉,见不贤而内自省也。 –《论语·里仁》

在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么、它知道什么以及它能做什么。这里简单列举和介绍 Python 自省相关的内建函数。

issubclass

issubclass(sub, sup)

如果给出的子类 sub 确定是父类 sup 的一个子类,则返回 True ,反之则返回 False。这个函数也允许“不严格”的子类,意味着,一个类可视为其自身的子类。issubclass() 的第二个参数可以是可能的父类组成的元组(tuple),这时,只要第一个参数是给定元组中任何一个候选类的子类时,就会返回 True。

isinstance

isinstance(object, class-or-type-or-tuple)

判断 object 对象是否是 class 的一个实例,或者是否属于 type 类型,如果是返回 True, 否则返回 False。第二个参数可以是一个元组,如果第一个参数是第二个参数中给定元组的任何一个候选类型或类的实例时,就会返回 True。

hasatrr

hasattr(object, name)

检查 object 是否有一个名为 name 的值的属性,返回一个布尔值。 第二个参数,即属性名字符串的方式提供。该函数一般用于访问某属性前先做一个检查。

getattr

getattr(object, name[, default])

返回 object 中名为 name 值的属性的值,例如如果属性名为 ‘bar’,则返回 obj.bar。 该函数会在试图获取一个不存在的属性时,引发 AttributeError 异常,除非可选的默认参数 defualt。

setattr

setattr(object, name, value)

将给 object 对象中名为 name 的值的属性赋值为 val。例如如果 name 为 ‘bar’,则相当于 obj.bar = val。 如果 object 中有 name 的属性则重新设置其值,如果没有则添加一个名为 name 的属性。

delattr

delattr(object, name)

从 object 中删除名为 name 的属性。

callable

callable(object)

检查对象object是否可调用。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。需要注意的是,类是可调用的,而类的实例实现了__call__()方法才可调用。该函数在python2.x版本中都可用。但是在python3.0版本中被移除,而在python3.2以后版本中被重新添加。

dir

dir([object])

不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。参数可以是对象、变量、类型。

sys 模块

sys.executable

当前 Python 解释器路径:

>>> sys.executable

'/usr/bin/python3'

sys.platform

当前系统平类型:

>>> sys.platform

'linux'

platform 可以获取给多平台相关的信息。

sys.version

当前 Python 解释器程序的版本信息,该属性是一个字符串。

>>> sys.version

'3.4.3 (default, Oct 14 2015, 20:28:29) \n[GCC 4.8.4]'

sys.version_info

当前 Python 解释器程序的版本信息,该属性是一个类似于元组的类型。

>>> sys.version_info

sys.version_info(major=3, minor=4, micro=3, releaselevel='final', serial=0)

>>> sys.version_info >= (3, 0)

True

buitins

内建模块在 Python2.x 中为 __builtin__,在 Python3.x 中为 builtins。而__builtins__是内建模块的引用,它和内建模块一样,在程序运行之前被加载到内存。内建模块与__builtins__的区别如下:

(1)无论任何地方要想使用内建模块,都必须在该位置所处的作用域中导入__builtin__内建模块;而对于__builtins__却不用导入,它在任何模块都直接可见

(2)__builtins__虽是对内建模块的引用,但这个引用要看是使用__builtins__的模块是哪个模块:

在主模块__main__中:__builtins__是对内建模块__builtin__本身的引用,即__builtins__完全等价于__builtin__,二者完全是一个东西,不分彼此。

在非__main__模块中:__builtins__仅是对__builtin__.__dict__的引用,而非__builtin__本身。它在任何地方都可见。此时__builtins__的类型是字典。

python内建函数是什么意思_Python 自省相关的内建函数和属性相关推荐

  1. python内建函数与方法的区别_Python 自省相关的内建函数和属性

    见贤思齐焉,见不贤而内自省也. --<论语·里仁> 在计算机编程中,自省是指这种能力:检查某些事物以确定它是什么.它知道什么以及它能做什么.这里简单列举和介绍 Python 自省相关的内建 ...

  2. python中对象的特性_Python深入学习之对象的属性

    Python一切皆对象(object),每个对象都可能有多个属性(attribute).Python的属性有一套统一的管理方案. 属性的__dict__系统 对象的属性可能来自于其类定义,叫做类属性( ...

  3. python流行的爬虫框架_Python爬虫相关框架

    Python爬虫相关框架,Python的爬虫框架就是一些爬虫项目的半成品.比如我们可以将一些常见爬虫功能的实现代码写好,然后留下一些接口,在做不同的爬虫项目时,我们只需要根据实际情况,只需要写少量需要 ...

  4. python中math模块函数_Python常用的一些内建函数和math模块函数

    一:Python内建函数 1 #abs取绝对值 2 num = -10 3 print(abs(num))4 5 #max 求最大值 6 print(max(6, 9, 2, 12, 8))7 8 # ...

  5. python内建函数是什么意思_python、什么是内建函数?

    展开全部 python内建函数总结 1. abs(x) abs()函数返回数字2113(可为普通型.长整5261型或浮点型)的绝对值.如果给出复4102数,1653返回值就是该复数的模.例如: > ...

  6. python字典添加主键_python 字典相关操作

    Python 中的一种数据结构 -- 字典( Dictionary )的使用方法总结. 一. dictionary 数据类型的结构是: {key1:value1, key2:value2, ...} ...

  7. python中int函数规则_python数字规则和内建函数

    python字符串补充: 字符串对象须当作参数的方法(非str.capitalize()形式): 1.str(obj)--将对象转化为字符串 2.len(str)--计算字符串长度 3.max(str ...

  8. python多进程用不了_Python多进程相关的坑

    Python的multiprocessing模块实现了多进程功能,但官方文档上只有一些比较简单的用法,主要是使用函数作为process的target,而如何在class中使用多进程并没有多讲解.goo ...

  9. python类的成员函数_Python实现动态添加类的属性或成员函数的解决方法

    某些时候我们需要让类动态的添加属性或方法,比如我们在做插件时就可以采用这种方法.用一个配置文件指定需要加载的模块,可以根据业务扩展任意加入需要的模块. 本文就此简述了Python实现动态添加类的属性或 ...

最新文章

  1. 深入理解PHP内存管理之谁动了我的内存
  2. C++高级程序员基本技能你都具备吗?
  3. Linux下下载JDK
  4. php session缓存,扫盲:php session缓存至memcached中的方法
  5. 前端学习(610):js执行过程
  6. 关于显示和隐藏DIV标签
  7. 信息学奥赛一本通(1313:【例3.5】位数问题)
  8. [转]解决Sublime Text 2中文显示乱码问题
  9. markdown模板
  10. 一个黑客都要学习什么语言
  11. P1005 [NOIP2007 提高组] 矩阵取数游戏
  12. 平方数之和【leetcode 633】
  13. 怎么预防和清除计算机病毒,预防和清除计算机病毒的方法
  14. 达梦企业管理器DEM的安装部署
  15. php linux重新写路由器,通过php脚本重启路由器
  16. MySQL 查询执行流程
  17. X位的有/无符号整数
  18. 一步步实现一个完整的万年历
  19. 【Python从零到壹】Python基础之函数的应用
  20. php 单笔转账到支付宝

热门文章

  1. SAP CRM WebClient UI F2页面里from pre-processing table标签位的含义
  2. CRM Fiori Application opptListRefreshed
  3. how is our custom css style inserted to html
  4. how is Java Bean object created
  5. 为什么Note.js 里面没有sap.ui.core.Control.extend()这样的代码,但是runtime有自动生成有
  6. SAP BSP应用configuration的加载原理
  7. association in CDS view is converted to LEFT OUTER MANY TO ONE JOIN in the runtime
  8. HANA report creation implementation go through
  9. 如何查看其他人的ABAP authorization check log
  10. SE37 test sequence - 在同一个main session内依次执行function module