当前位置: 首页 > 面试题库 >

如何获得Python函数的源代码?

贺雪松
2023-03-14
问题内容

假设我有如下定义的Python函数:

def foo(arg1,arg2):
    #do something with args
    a = arg1 + arg2
    return a

我可以使用获取函数的名称foo.func_name。如上所述,我如何以编程方式获取其源代码?


问题答案:

如果该功能来自文件系统上可用的源文件,则inspect.getsource(foo)可能会有帮助:

如果foo定义为:

def foo(arg1,arg2):         
    #do something with args 
    a = arg1 + arg2         
    return a  

然后:

import inspect
lines = inspect.getsource(foo)
print(lines)

返回值:

def foo(arg1,arg2):         
    #do something with args 
    a = arg1 + arg2         
    return a  

但是我相信,如果函数是从字符串,流中编译的,或者是从编译文件中导入的,那么您将无法检索其源代码。



 类似资料:
  • 我想看看一个函数的源代码,看看它是如何工作的。我知道我可以通过在提示符下键入函数名称来打印函数: 在这种情况下,是什么意思?如何找到实际使用的源代码,例如:? 如何查找和等函数? 在另一些情况下,有一些R代码,但大部分工作似乎是在其他地方完成的。 如何找到函数的功能?类似地,某些函数调用、、、或。我怎样才能找到这些的源代码?

  • 问题内容: 这个命令确实非常有用,但是我可以在其中获取源代码以查看内部发生了什么。 谢谢 。 问题答案: tail实用程序是linux上coreutils的一部分。 原始档:ftp : //ftp.gnu.org/gnu/coreutils/coreutils-7.4.tar.gz 源文件:http : //git.savannah.gnu.org/cgit/coreutils.git/tree/

  • 我试图整理一个规范的例子,说明如何获得Python中所有内置函数的列表。留档是好的,但我想证明它与一个可证明的方法。 在这里,我将内置函数定义为默认名称空间的成员,这些成员是可用的,并且与用于模块的函数的风格特征一致,也就是说:它们提供一些有用的功能,并以字母表中的小写字母开始。 我在这里做的好处是,我演示了列表理解的过滤部分,但这似乎有点肮脏,应该有一种更直接的方法来做这件事。以下是我目前正在做

  • 问题内容: 有没有办法查看内置函数如何在python中工作?我不仅意味着如何使用它们,而且还意味着它们是如何构建的,排序或枚举等背后的代码是什么? 问题答案: 由于Python是开源的,因此你可以阅读源代码。 要找出实现了特定模块或功能的文件,通常可以打印属性。或者,你可以使用该inspect模块,请参阅的文档中的“ 检索源代码 ”部分。 对于内置的类和方法,这是不是这样,因为直白,并会返回一个类

  • 问题内容: 我正在使用以下代码来获取JavaScript调用者函数的名称: 有没有办法发现调用该方法的行号? 另外,是否有办法获取调用该方法的JavaScript文件的名称?还是源URL? 问题答案: 这适用于我在chrome / QtWebView中

  • 问题内容: 在Python中,如何在不调用函数的情况下以字符串形式获取函数名称? 应该输出。 此类功能在Python中可用吗?如果没有,关于如何在Python中实现的任何想法? 问题答案: 使用是首选的方法,因为它可以统一应用。与不同func_name,它还可以用于内置函数: 同样,双下划线向读者表明这是一个特殊的属性。另外,类和模块也具有属性,因此你只记得一个特殊名称。