从不同的Python文件调用方法
我现在正在学习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
的上下文中执行,也就是说,当它引用某些东西时,会在那个地方查找。