仍以前面章节创建的 my_package 包为例,下面代码尝试使用 __file__ 属性获取该包的存储路径:
import my_package
print(my_package.__file__)
程序输出结果为:C:\Users\mengma\Desktop\my_package\__init__.py
注意,因为当引入 my_package 包时,其实际上执行的是 __init__.py 文件,因此这里查看 my_package 包的存储路径,输出的 __init__.py 文件的存储路径。再以 string 模块为例:
import string
print(string.__file__)
程序输出结果为:D:\python3.6\lib\string.py
由此,通过调用 __file__ 属性输出的绝对路径,我们可以很轻易地找到该模块(或包)的源文件。
注意,并不是所有模块都提供 __file__ 属性,因为并不是所有模块的实现都采用 Python 语言,有些模块采用的是其它编程语言(如 C 语言)。