考虑y.py:
def f():
x = 1
y = 2
和x.py:
from y import f
f()
a = x + 1
b = y + 1
显然x.py不起作用,因为y.f()没有返回任何东西。那么我如何处理我想要从一个脚本复制到另一个脚本中的某个预定点的多行中的情况,最终在执行之前在x.py中重新显示如下所示?
x = 1
y = 2
a = x + 1
b = y + 1
请注意,此简单示例仅包含变量声明。实际上,y.py将包含变量声明,流控制,类,函数等的混合。
非常感谢您的帮助。
答案 0 :(得分:3)
我认为您需要重新考虑您的计划结构。您可以通过使用execfile
来完成这项工作,但这会很糟糕。 Python有名称空间和类,原因如下:你应该使用它们。
答案 1 :(得分:1)
你要求的是内联机制,一个宏。 Python没有那些并且有充分的理由。你最需要的是可以用现有的Python结构来完成,比如函数或类。如果我们要提供帮助,您需要提供更多代码。
根据您的基本示例,考虑如何从“f”函数重构代码,以便“x”和“y”是可以独立调用的独立函数(而不是局部变量),并且您可以在你的“x.py”程序中使用。很多局部变量都是代码气味,所以我开始将其重构为更易于管理和独立的元素。