相关疑难解决方法(0)

你如何让Python写下它在内存中的函数代码?

当我通过程序中的选项(计算生物学实验)时,我通常会将它们传递给.py文件.
所以我有这个.py文件,如下所示:

starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000
Run Code Online (Sandbox Code Playgroud)

然后我执行文件并获取数据.由于程序全部在我的机器上,没有其他人可以访问它,因此它是安全的.
我也可以很容易地写一个类似的文件:

def writeoptions(directory):
    options=""
    options+="starting_length=%s%s"%(starting_length,os.linesep)
    options+="starting_cell_size=%s%s"%(starting_cell_size,os.linesep)
    options+="LengthofExperiments=%s%s"%(LengthofExperiments,os.linesep)
...
    open("%s%soptions.py"%(directory,os.sep),'w').write(options)
Run Code Online (Sandbox Code Playgroud)

我想传递一个函数作为参数之一:

starting_length=9
starting_cell_size=1000
LengthofExperiments=5000000

def pippo(a,b):
    return a+b
functionoperator=pippo
Run Code Online (Sandbox Code Playgroud)

当然,在真正的实验中,函数pippo会复杂得多.不同于实验到实验.

但我无法做的是自动编写函数.总之,如果其中一个选项是函数,我不知道如何推广writeoptions函数以继续编写选项.我当然可以复制原始文件,但这是不优雅的,低效的(因为它包含许多未被使用的额外选项),并且通常不能解决问题.

你如何让python写下函数的代码,因为它记下了变量的值?

python artificial-intelligence

5
推荐指数
1
解决办法
2855
查看次数

沿执行路径收集python源代码注释

例如,我有以下 python 函数:

def func(x):
    """Function docstring."""

    result = x + 1
    if result > 0:
        # comment 2
        return result
    else:
        # comment 3
        return -1 * result
Run Code Online (Sandbox Code Playgroud)

而且我想要一些函数来打印沿执行路径遇到的所有函数文档字符串和注释,例如

> trace(func(2))
Function docstring.
Comment 2
3
Run Code Online (Sandbox Code Playgroud)

事实上,我试图实现的是提供一些关于如何计算结果的评论。

可以用什么?据我所知,AST 不会在树中保留评论。

python

5
推荐指数
1
解决办法
149
查看次数

python 从函数名查看完整定义

我最近问了一个标题为“python find the type of a function”的问题,并得到了非常有用的答案。这是一个相关的问题。

假设我导入我编写的 *.py 文件,这些导入导致f成为我定义的函数之一。现在我写信给我的 python 解释器x = f。后来,我想看到 的完整定义f,最好还有注释,只知道x。这可能吗?python 是否记得定义是从哪个文件导入的,这当然不足以给出 的完整定义f,除非可以找到实际的相关定义?

python python-import python-3.x

4
推荐指数
1
解决办法
2787
查看次数

反正有没有在python中获取函数的传递参数的名称?

我想知道传递给函数时局部变量名是什么.我不确定这是否可行.让我们考虑这个例子:

功能定义:

def show(x):
  print(x)
Run Code Online (Sandbox Code Playgroud)

用法:

a = 10
show(a)
Run Code Online (Sandbox Code Playgroud)

这打印10.但我喜欢打印"a = 10".这在python中可能吗?

python

2
推荐指数
3
解决办法
391
查看次数

是否可以从pandas库中读取源代码并在我自己的函数中使用它?

背景:

我想在给定行长度的元素中切片pandas数据帧,并对它们执行计算.

pandas.DataFrame.rolling将允许我这样做,但似乎只有内置函数,如sum()示例中所示df.rolling(2, win_type='triang').sum().我还想绘制这些子集(我可以通过切片和一些For循环来做到这一点,但它有点慢).

我发现了什么:

如何获取Python函数的源代码?我已经知道我可以阅读使用的源代码,pandas.DataFrame.rolling??这将给我这个:

在此输入图像描述

但是试图从这里深入挖掘使用例如rolling??似乎是徒劳的:

在此输入图像描述

那么,是否有可能以pandas.DataFrame.rolling某种方式引用底层函数,或者这是使用Python结束的?我想是的,因为文档声明大熊猫是用Cython或C编写的,但我真的好奇这个,所以我也想在这里问一下这个问题.

谢谢你的任何建议!

python pandas

1
推荐指数
1
解决办法
819
查看次数

len()函数在python 3中是如何实现的以及如何找到python中内置函数的源代码?

这个探索从一个简单的 LeetCode 问题开始。我正在学习 python 并试图解决 leetcode 中的一个问题,其中我在检查 while 循环中的条件时使用了len() 。我很好奇如果我在 while 中写入len(nums)我的程序会进行更多计算。为了找到这个问题,我开始寻找源代码。

while i < len(nums):
       #if both the numbers are same we can pop the ith number
       #else just increase the index and return the length in the end.
       if nums[i] ==  val:
            nums.pop(i)
       else:
           i+=1
return len(nums)
Run Code Online (Sandbox Code Playgroud)

现在,我有两个问题:

  1. 如何在不手动在GitHub上搜索源代码的情况下查找内置函数的源代码?
  2. len函数内部如何工作?

我对此有两个假设:

  1. Python 将所有东西都视为一个对象,它们有一个名为 length(或类似的东西)的属性,每当我从列表中弹出一个元素时。该属性减 1。
  2. 另一个假设是 python 以某种方式迭代整个对象并返回长度。

我得到了源代码。然而,它再次使用另一个函数来计算长度。

static PyObject *
builtin_len(PyObject *module, PyObject *obj)
/*[clinic end generated code: output=fa7a270d314dfb6c input=bc55598da9e9c9b5]*/ …
Run Code Online (Sandbox Code Playgroud)

c python python-3.x

1
推荐指数
1
解决办法
1563
查看次数

删除了 Jupyter 中函数的一个单元格

我在 jupyter 笔记本中做了一个函数,单元格被删除了。我想知道函数中的代码。我无法使用,undo deleted cell因为它很久以前就被删除了。该函数不会从笔记本内存中删除,因为我可以运行它。有没有办法让代码写在函数内部?

python jupyter-notebook

0
推荐指数
1
解决办法
374
查看次数