对于Linux安装环境,Python标准模块大多作为单个.py文件存储在路径“/usr/lib64/python3x/”中。 (我在这里使用版本 3.6 和 Centos 6)所有可用的方法和类都应该在该单个 .py 文件中找到。
以模块“datetime”为例,在文档中它说它有一个名为“date”的类,对于这个类,它有一个名为“今天()'。所以在'/usr/lib64/python3.6/datetime.py'中我们可以找到
class date:
..
..
def today(cls):
..
..
但是,对于“/usr/lib64/python3.6/ssl.py”中的模块“ssl”,docs有一个名为“SSLContext.cert_store_stats()”的方法,但是在文件“ssl.py”中,我可以找到类SSLContext,但我似乎找不到在该类中查找方法cert_store_stats()。为什么会这样?
这并不是针对任何代码问题,只是出于对 Python 如何查找其模块和方法的好奇。
最佳答案
如果您阅读 ssl.py 源代码,第一行会说明:
# Wrapper module for _ssl, providing some additional facilities
# implemented in Python.
然后再往下一点(在模块的文档字符串之后),您会发现
from _ssl import _SSLContext
最后是 SSLContext
类定义,开头为:
class SSLContext(_SSLContext):
IOW,您正在寻找的方法继承自_ssl._SSLContext
。
注意:_ssl
是一个 C 编码模块,您会在 stdlib 和第 3 部分应用程序中找到其他几个模块。
关于python - Python如何查找模块和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55279480/