1

考虑 y.py:

def f():
    x = 1
    y = 2

和 x.py:

from y import f
    f()
    a = x + 1
    b = y + 1

显然 x.py 不起作用,因为 yf() 没有返回任何东西。那么我该如何处理我想从一个脚本复制多行到另一个脚本中的某个预定点的情况,最终在 x.py 执行之前看起来像下面这样?

x = 1
y = 2
a = x + 1
b = y + 1

请注意,这个简单的示例仅包含变量声明。实际上 y.py 将包含变量声明、流控制、类、函数等的混合。

非常感谢您的帮助。

4

2 回答 2

3

我认为你需要重新考虑你的程序结构。您可以通过使用来完成这项工作execfile,但这将是可怕的。Python 有命名空间和类是有原因的:你应该使用它们。

于 2012-11-30T10:36:02.040 回答
1

你要的是内联机制,一个宏。Python 没有这些,并且有充分的理由。您最需要的肯定可以使用现有的 Python 结构来完成,例如函数或类。如果我们要提供帮助,您需要提供更多代码。

根据您的基本示例,考虑如何从“f”函数重构代码,以便“x”和“y”是可以独立调用的独立函数(而不是局部变量),并且可以在你的“x.py”程序。许多局部变量是一种代码味道,所以我会开始将其重构为更易于管理和独立的元素。

于 2012-11-30T10:38:49.400 回答