从不同的Python文件调用方法

时间:2009-11-16 14:15:43

标签: python django methods

由于我目前正在学习Django / Python,我还没有真正使用过Classes的概念。据我所知,这个方法不是静态的......它只是一个标准的定义。

所以,假设我有一个名为Example1的程序包,其views.py包含此方法:

def adder(x,y):
  return x + y

然后我有Example2,其中还有views.py,我想使用此方法adder

我将如何做到这一点?

编辑:在Java中,它将是一个简单的实例化,然后是instantiation.Method(),或者如果它是静态的,它将是SomeClass.Method()但是我不确定我应该如何在Python中处理它。

3 个答案:

答案 0 :(得分:7)

Python具有模块级和类级方法。在这个概念中,“模块”是一个非常特殊的类,使用import代替Name()。尝试

from Example1.views import adder as otherAdder

访问模块级方法。现在您可以调用otherAdder(),它将执行另一个模块中的代码。请注意,该方法将在Example1.views的上下文中执行,即当它引用事物时,它将在那里看。

答案 1 :(得分:6)

尝试:

from Example2.views import adder as myadder
myadder(x,y)

如果您不确定,可以随时启动python shell,然后使用dir命令查看包的内容以查看可以使用的内容。

编辑:从评论中更新以使用'as'

# use ...views as myviews if you need to avoid name conflict on views
from Example2 import views
views.adder(x,y)

答案 2 :(得分:3)

通常导入“模块”

我建议:

from Example2 import views as views2

x = views2.adder(1, 2)

我希望,我做对了,因为我到现在才使用包裹; - )