怎样在Python中查询相关函数的源代码

作者&投稿:鲁看 (若有异议请与网页底部的电邮联系)
如何查看python库函数的代码?~

python 所有版本的源代码可以在这里下载到:
https://www.python.org/downloads/source/
python没有像matlab那样的函数可以直接查看某个函数的源代码,只有去下载整个源代码查看了,不过找起来应该也不难,另外你也可以写一个小程序来查看对应函数的源代码。
Python的函数调用方式是通过import来调用的对应的py文件。
库函数有内建函数build_in(会写python的时候已经可以不用看了,不会写的时候看也看不懂),和通过pip直接下载或者github上下载再安装的函数。本质上都是py文件。后者有时候由于环境的不同需要自行修改(这种情况较少),一般在安装路径下"\Lib\site-packages"文件夹中存在。
学习库函数最好的方法是看网上官方的帮助文档,此外还可以通过python自带的dir()方法查看所有的属性和方法,或者用help()方法查看帮助文档(部分别人造的轮子不一定有)。另外推荐使用ipython,Python创始人之一的成员编写的交互式系统。

例如stat位于os module,那么可以help(os),出现如上图的结果,其中FILE就是其源文件位置,当然,如果这个module是c module,那就看不到相应的源码了。
你提到os模块中没有stat这个函数,那时因为它在posix或者nt module中实现,os模块根据当前的操作系统来导入相应的实现。

在 python 官网下载 Gzipped source tar ball, 解压缩后, 会发现 Lib/os.py 文件这行代码
from posix import *
可是没有文件叫 posix.py 啊, 到底在那 ? 其实 posix module 是 builtin 的其中一分子,如下示范:

>>> import sys
>>> print sys.builtin_module_names
(*__builtin__*, *__main__*, *_ast*, *_codecs*, *_sre*, *_symtable*, *_warnings*, *_weakref*, *errno*, *exceptions*, *gc*, *imp*, *marshal*, *posix*, *pwd*, *signal*, *sys*, *thread*, *zipimport*)
>>>

所以要去 Modules 目录查找 c 代码, 你会看见 posixmodule.c, 打开它看见这行代码:

{"listdir", posix_listdir, METH_VARARGS, posix_listdir__doc__},

再寻找上面所得到的 posix_listdir method, 可以找到 listdir 源代码:

static PyObject *
posix_listdir(PyObject *self, PyObject *args)
{
/* XXX Should redo this putting the (now four) versions of opendir
in separate files instead of having them all here... */
#if defined(MS_WINDOWS) && !defined(HAVE_OPENDIR)

PyObject *d, *v;
HANDLE hFindFile;
BOOL result;


Python中创建集合的方法有哪些呢?
集合分为两种:可变集合(set)和不可变集合(frozenset),现在学习的是可变集合。在Python中,有关于集合的操作主要有:集合的创建;集合的添加和删除;集合的交、并和差集运算。今天先来学习如何创建集合。集合的创建有两种方法:直接赋值法和set()函数法。1、直接赋值法 和Python的其它序列一样,采用...

那些Python中的模块
要想查看模块中定义的内容,可以使用dir函数。上面的例子列出了当前模块中定义的内容,包括变量,模块,函数等。我们可以给dir加上参数,来获取特定模块的内容:java中有package的概念,用来隔离程序代码。同样的在Python中也有包。我们看一个Python中包的例子:上面我们定义了4个包,分别是sound,sound....

详解Python中的__new__、__init__、__call__三个特殊方法
总结,在Python中,类的行为就是这样,__new__、__init__、__call__等方法不是必须写的,会默认调用,如果自己定义了,就是override,可以custom。既然override了,通常也会显式调用进行补偿以达到extend的目的。 这也是为什么会出现"明明定义def _init__(self, *args, **kwargs),对象怎么不进行...

tuple在python中的用法
从上面可以看到,我们创建出来的压根就不是元组类型。那么我们想创建一个只包含一个元素的元组时,需要怎么创建呢?很简单,只需要在元素后加上一个逗号,,这样创建出来就是一个元组。当我们需要访问元组中的元素,可以类似列表一样通过索引取值或切片取值。python中list,tuple,dict,set是最常用的集合...

python中+=的用法
本教程操作环境:windows7系统、python3.9版,DELLG3电脑,该方法适用于所有品牌电脑 python中+=的意思:1、+=其实很容易理解 2、例如:C+=0.1 就等于C+0.1=C 3、其实就是在C的本身加上0.1而已 然后看看输出就知道了 这里两种方式看似结果一样,但是它们的执行过程却不一样。a=a+b的执行过程...

Python中用Pygame自己做了一个音乐播放器,结果不管怎么样都报错No av...
4. 检查耳机和音频线连接确保耳机和音频线正常连接,并且没有损坏或松动的情况。有时候,音频设备无法正常工作是由于连接问题引起的。如果以上方法都不能解决问题,那可能是由于特定的系统配置或硬件问题造成的。在这种情况下,你可以尝试在Pygame中使用其他的音频库,或者咨询相关的技术支持,以获取更专业的...

python是什么?
以下是 Python 的一些特性:- **解释性语言:** Python是解释性语言,这意味着在运行程序之前不需要进行编译。Python解释器会逐行解释程序代码,并动态地执行它们。- **面向对象特性:** 与其他编程语言一样,Python是一种面向对象的语言。这意味着它支持封装、继承和多态等面向对象编程特性,这些特性...

python提供了哪三个非常重要的语句来应对python程序在运?
还有个非常重要的知识点:for i in range(5)的话,它的确会循环5次,但要注意,在python中,第一个元素的序号其实是0,所以如果我们输入如下代码:for i in range(5): print(i)12那么输出的结果是从0开始的,也就是0到40123412345这时候你可能要问,这玩意有什么用?下面我就以舆情监控中的实战来给大家...

Python该怎么入门?
Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。易学:Python极其容易上手,因为Python有极其简单的说明文档 [9] 。易读、易维护:风格清晰划一、强制缩进 用途广泛 速度快:Python 的底层是用 C 语言写的,...

python中tuple是什么
首先注意缩进。if语句是代码块,需要像函数一样缩进。其次,变量的赋值是一条被分成了多行的命令,用反斜线(“/”)作为续行符。当一条命令用续行符(“/”)分割成多行时,后续的行可以以任何方式缩近,此时Python通常的严格的缩近规则无需遵守。如果您的PythonIDE自由对后续行进行了缩近,应该...

夏邑县17689658177: 怎样在Python中查询相关函数的源代码 -
萧福坤泰: help相应的module,例如stat位于os module,那么可以help(os),出现如上图的结果,其中FILE就是其源文件位置,当然,如果这个module是c module,那就看不到相应的源码了. 你提到os模块中没有stat这个函数,那时因为它在posix或者nt module中实现,os模块根据当前的操作系统来导入相应的实现.

夏邑县17689658177: python怎么查看函数参数? -
萧福坤泰: 在开发中我们可以借助于相关插件或使用Python内置函数"help()”来查看某个函数的参数说明,以查看内置函数sorted()为例:函数参数包括:必选参数、默认参数、可选参数、关键字参数.1、默认参数:放在必选参数之后,计算x平方的函...

夏邑县17689658177: python怎么查看函数有什么参数 -
萧福坤泰: Python中查看函数参数有四种方式:1. F(arg1,arg2,…)这是最常见的定义方式,一个函数可以定义任意个参数,每个参数间用逗号分割,用这种方式定义的函数在调用的的时候也必须在函数名后的小括号里提供个数相等的值(实际参数),...

夏邑县17689658177: python里怎么知道一个模块的全部函数? -
萧福坤泰: 你好:1.知道你要的是什么函数(func),在那个模块,然后import xxx2.help(xxx.func)

夏邑县17689658177: python中怎样查看已加载的命名空间中所有变量和函数 -
萧福坤泰: globals()和locals()函数的返回值是一个字典,包含命名空间的所有变量名和对应的值(比如字符串、字典、列表、函数、模块),globals()是全局命名空间,locals()是局部命名空间,全局指这个模块,局部可以是函数、类、闭包.调用dir()函数传参或者不传,它的返回值就是这俩函数返回值的键组成的列表.

夏邑县17689658177: python中怎么获取函数的参数 -
萧福坤泰: 需要模块:sys 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2]

夏邑县17689658177: 如何查找Python中的关键字 -
萧福坤泰: 一 查看所有的关键字:help("keywords") Here is a list of the Python keywords. Enter any keyword to get more help.and elif import return as else in try assert except is while break finally lambda with class for not yield continue from or def ...

夏邑县17689658177: python中如何查询method 的功能? -
萧福坤泰: 查询用help>>>help(obj.method) #通用查询方法 对象名obj.方法名method 本例>>>help("".method) #""为空字符串,但已经是一个string对象了

夏邑县17689658177: python如何查看某个函数被哪些类继承 -
萧福坤泰: python中每个modul,每个class,每个def都是留有写doc的地方的,写没写是另一回事,可以用“对象名称.__doc__”查看.这是一个字符串,所以内容只能是字符串允许的内容.如果字符不足以满足说明需求,可能会加上web链接,或者专门的说明函数.

夏邑县17689658177: Python如何调用自定义类中的函数? -
萧福坤泰: 定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构.这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行.如下实例调用了printme()函数:复制代码 代码如下:#!...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网