python代码,如何理解dir函数?如何列出当前所有变量?
发布于 作者:苏南大叔 来源:程序如此灵动~
python
代码里面有个dir()
函数,那么这里面的dir
函数和大家已经熟悉的dir
命令和ls
命令,有什么关系呢?本文的主要内容就是看看python
里面的dir
函数,究竟是用来做什么用的呢?是用于列出某个目录下面的所有文件么?请参考本文中的内容。
大家好,这里是苏南大叔的程序如此灵动博客,这里记录苏南大叔和计算机代码的故事。本文讨论dir
函数是如何列出所有变量,列出所有可用操作的?本文测试环境:win10
,python@3.6.8
。
dir()
列出当前环境变量
测试代码:
a = (1,)
b = [1, ]
print(__file__)
print(__name__)
print(dir())
输出内容:
c:/Users/sunan/Desktop/py/test.py
__main__
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'a', 'b']
可以注意的是:dir()
内部并没有传递任何内容,这个时候会返回当前已经显式或隐式定义好的变量。
dir(arg)
列出当前变量的可用操作
测试代码:
a = (1,)
b = [1, ]
print(dir(a))
输出内容:
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
这个操作中,dir()
中传递了一个变量,根据这个变量的类型,可以返回其可用的所有操作方法。代码中对tuple
类型,列出了所有相关操作。
listdir(path)
列出当前目录下文件
在python
中,列出当前目录下的文件的话,使用的是OS
模块下的listdir
函数。测试代码如下:
import os
cwd = os.path.dirname(__file__)
list = os.listdir(cwd)
print(list)
输出如下:
['test.py', 'zip.zip', 'sunan.rtf', 'xls.xls', '新建文件夹']
相关链接
综述
经过本文的描述,大家可以看到:python
下的dir
函数和终端中的dir
命令,差别还是很大的。而且,python
中的dir()
也有两种不同的使用方法,返回的都是list
类型。所以,该函数和大家的想象可能还是有较大的差距的。


