python dir查看模块属性和方法函数

python 内置方法有很多,无论是初学者还是精通python 的程序员都不能全部即住所有的方法。dir() 函数算的上是 Python 比较常用的也很好用的一个函数,它返回包含查询对象的所有属性和方法名称的列表。

1、dir() 内置函数的作用

直接使用 dir()函数可以看到所有已创建的变量,这些已经创建的变量会保存在globals全局中。也通过输入形参方式可以查看对象内的所有的属性和方法,在 python 中任何东西都是对象,一种数据类型,一个模块等,都有子集的属性和方法,除了常用的方法外,其他的你不需要全部记住它,直接使用 dir() 函数即可。

2、dir() 函数的使用方法

dir()函数操作方法很简单,只需要把你想要查询的对象填写在括号() 中就可以了。

例如:你想查看一些列表都有那些方法,你可以在括号()中直接传入空列表对象[]或是一个表示列表数据类型的变量名,像下面这样操作: 如果你想查看字符串,只要在()里填入参数变量 “” 即可。

>> dir([])
[__add__, __class__, __contains__, __delattr__, __delitem__, __dir__, __doc__, __eq__, __format__, __ge__, __getattribute__, __getitem__, __gt__, __hash__, __iadd__, __imul__, __init__, __init_subclass__, __iter__, __le__, __len__, __lt__, __mul__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __reversed__, __rmul__, __setattr__, __setitem__, __sizeof__, __str__, __subclasshook__, append, clear, copy, count, extend, index, insert, pop, remove, reverse, sort]

如何用 dir() 函数查看模块的属性和方法

要产看某个模块可干什么,先要导入模块,之后用上面讲过的方法查看就可以了,比如要查看 sys模块都可以干什么,可以想下面这样操作:

>>> import sys
>>> dir(sys)
[__breakpointhook__,
 __displayhook__,
 __doc__,
 __excepthook__,
 __interactivehook__,
 __loader__,
 __name__,
 __package__,
 __spec__,
 __stderr__,
 __stdin__,
 __stdout__,
 _clear_type_cache,
 _current_frames,
 _debugmallocstats,
 _framework,
 _getframe,
 _git,
 _home,
 _xoptions,
 abiflags,
 api_version,
 argv,
 base_exec_prefix,
 base_prefix,
 breakpointhook,
 builtin_module_names,
 byteorder,
 call_tracing,
 callstats,
 copyright,
 displayhook,
 dont_write_bytecode,
 exc_info,
 excepthook,
 exec_prefix,
 executable,
 exit,
 flags,
 float_info,
 float_repr_style,
 get_asyncgen_hooks,
 get_coroutine_origin_tracking_depth,
 get_coroutine_wrapper,
 getallocatedblocks,
 getcheckinterval,
 getdefaultencoding,
 getdlopenflags,
 getfilesystemencodeerrors,
 getfilesystemencoding,
 getprofile,
 getrecursionlimit,
 getrefcount,
 getsizeof,
 getswitchinterval,
 gettrace,
 hash_info,
 hexversion,
 implementation,
 int_info,
 intern,
 is_finalizing,
 maxsize,
 maxunicode,
 meta_path,
 modules,
 path,
 path_hooks,
 path_importer_cache,
 platform,
 prefix,
 ps1,
 ps2,
 ps3,
 set_asyncgen_hooks,
 set_coroutine_origin_tracking_depth,
 set_coroutine_wrapper,
 setcheckinterval,
 setdlopenflags,
 setprofile,
 setrecursionlimit,
 setswitchinterval,
 settrace,
 stderr,
 stdin,
 stdout,
 thread_info,
 version,
 version_info,
 warnoptions]

查询模块内置函数的方法:

问题1: 如何查看一个模块中方法是否在内置模块有定义?

用dir(模块名)看是否有__builtins__属性。

例如:查看string模块

>>> dir(string) [Formatter, Template, _ChainMap, _TemplateMetaclass, __all__, __builtins__, __cached__, __doc__, __file__, __loader__, __name__, __package__, __spec__, _re, _string, ascii_letters, ascii_lowercase, ascii_uppercase, capwords, digits, hexdigits, octdigits, printable, punctuation, whitespace]

问题2、如何查看内置模块中内置函数定义

dir(__builtins__)

经验分享 程序员 微信小程序 职场和发展