Pythond的自省函数和sys模块
qingheluo2019-02-22清河洛284
在计算机编程中,自省是指检查某些事物以确定它是什么、它有什么以及它能做什么。help([obj]):当给出obj参数时获取obj对象的help信息当不指定obj对象直接使用help()时会进入交互式的help界面:1、输入对象名称会获取对应的帮助信息2、输入下列4个关键字会显示所有指定的信息modules:显示模块keywords:显示关键字symbols:显示操作符topics:显示常见主题按CTRL+C或者输入quit(q)退出交互界面。type(obj)返回独享对应的类名称dir([obj])不带参数时,返回当前作用域中(默认值是当前的模块对象)的变量、方法和定义的类型列表;带参数...
在计算机编程中,自省是指检查某些事物以确定它是什么、它有什么以及它能做什么。
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