首页 > python学习 > Pythond的自省函数和sys模块
2019
02-22

Pythond的自省函数和sys模块

在计算机编程中,自省是指检查某些事物以确定它是什么、它有什么以及它能做什么。

help([obj]):

当给出obj参数时获取obj对象的help信息

当不指定obj对象直接使用help()时会进入交互式的help界面:

1、输入对象名称会获取对应的帮助信息

2、输入下列4个关键字会显示所有指定的信息

modules:显示模块

keywords:显示关键字

symbols:显示操作符

topics:显示常见主题

按CTRL+C或者输入quit(q)退出交互界面。

type(obj)返回独享对应的类名称

dir([obj])不带参数时,返回当前作用域中(默认值是当前的模块对象)的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法__dir__(),该方法将被调用。如果参数不包含__dir__(),该方法将最大限度地收集参数信息。如使用dir(__builtins__)可以查看内建模块builtins的所有属性和方法即所有的python内置属性和方法。

vars([obj])以字典类型返回对象的属性和属性值,如果不指定参数,返回当前调用位置的属性和属性值

callable(obj):检测对象是否可以被调用

下面的自省方法点击查看详细信息

类对象的检验:issubclass(class , classinfo)、isinstance(object,classinfo)

对象属性操作:getattr(obj, attr[, default])、hasattr(object,name)、setattr(object,name,value)、delattr(object,name)

sys 模块

sys 模块是提供关于Python本身的详尽内在信息的模块。常用的属性和方法:

    sys.argv 命令行参数List,第一个元素是程序本身路径 
    sys.modules.keys() 返回所有已经导入的模块列表 
    sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息 
    sys.exit(n) 退出程序,正常退出时exit(0) 
    sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0 
    sys.version 获取Python解释程序的版本信息 
    sys.maxint 最大的Int值 
    sys.maxunicode 最大的Unicode值 
    sys.modules 返回系统导入的模块字段,key是模块名,value是模块,sys.modules是一个全局字典,该字典是python启动后就加载在内存中。每当程序员导入新的模块,sys.modules将自动记录该模块。当第二次再导入该模块时,python会直接到字典中查找,从而加快了程序运行的速度。
    sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 
    sys.platform 返回操作系统平台名称 
    sys.stdout 标准输出 
    sys.stdin 标准输入 
    sys.stderr 错误输出 
    sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息 
    sys.exec_prefix 返回平台独立的python文件安装的位置 
    sys.byteorder 本地字节规则的指示器,big-endian平台的值是'big',little-endian平台的值是'little' 
    sys.copyright 记录python版权相关的东西 
    sys.api_version 解释器的C的API版本 
    sys.version_info 例如(2, 4, 3, 'final', 0) 'final'表示最终,也有'candidate'表示候选,表示版本级别,是否有后继的发行 
    sys.displayhook(value) 如果value非空,这个函数会把他输出到sys.stdout,并且将他保存进__builtin__._.指在python的交互式解释器里,'_' 代表上次你输入得到的结果,hook是钩子的意思,将上次的结果钩过来 
    sys.getdefaultencoding() 返回当前你所用的默认的字符编码格式 
    sys.getfilesystemencoding() 返回将Unicode文件名转换成系统文件名的编码的名字 
    sys.getcheckinterval()和sys.setcheckinterval(n):获取和设置python解释器每执行n条指令进行线程切换,在3.2版本之后废除了这两个函数
    sys.getswitchinterval()和sys.setswitchinterval(n):获取和设置python解释器每隔n秒进行线程切换,在3.2版本之后启用的新的线程切换机制
    sys.setdefaultencoding(name)用来设置当前默认的字符编码,如果name和任何一个可用的编码都不匹配,抛出 LookupError,这个函数只会被site模块的sitecustomize使用,一旦被site模块使用了,他会从sys模块移除 
    sys.builtin_module_names Python解释器导入的模块列表 
    sys.executable Python解释程序路径 
    sys.getwindowsversion() 获取Windows的版本 
    sys.stdin.readline() 从标准输入读一行,sys.stdout.write("a") 屏幕输出a
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。