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__)
作者:Panda_phc
链接:https://www.jianshu.com/p/80faba0bd4ff