从不同的Python文件调用方法

5 投票
3 回答
8768 浏览
提问于 2025-04-15 16:04

我现在正在学习Django和Python,但还没有真正使用过类的概念。根据我的理解,这个方法不是静态的,只是一个普通的定义。

假设我有一个叫做 Example1 的包,其中有一个 views.py 文件,里面包含了这个方法:

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

然后我还有一个 Example2,它也有一个 views.py 文件,我想在这里使用这个方法 adder

我该怎么做呢?

补充说明:在Java中,这很简单,只需要实例化一个对象,然后用 实例.Method() 来调用,或者如果是静态方法,就用 SomeClass.Method()。不过我不太确定在Python中该怎么做。

3 个回答

3

通常情况下,你会导入“模块”。

我建议你这样做:

from Example2 import views as views2

x = views2.adder(1, 2)

我希望我说得对,因为我到现在为止还没有使用过包;-)

6

试试这个:

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

如果你不确定,可以随时打开一个Python的命令行,然后使用 dir 命令来查看包里面有什么内容可以使用。

编辑:根据评论更新,使用 'as'

或者

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

Python 有模块级和类级的方法。在这里,“模块”是一个很特别的类,你可以通过使用 import 来获取,而不是用 Name()。试试看

from Example1.views import adder as otherAdder

来访问模块级的方法。现在你可以调用 otherAdder(),它会执行另一个模块里的代码。注意,这个方法会在 Example1.views 的上下文中执行,也就是说,当它引用某些东西时,会在那个地方查找。

撰写回答