由于我目前正在学习Django / Python,我还没有真正使用过Classes的概念。据我所知,这个方法不是静态的......它只是一个标准的定义。
所以,假设我有一个名为Example1
的程序包,其views.py
包含此方法:
def adder(x,y):
return x + y
然后我有Example2
,其中还有views.py
,我想使用此方法adder
。
我将如何做到这一点?
编辑:在Java中,它将是一个简单的实例化,然后是instantiation.Method()
,或者如果它是静态的,它将是SomeClass.Method()
但是我不确定我应该如何在Python中处理它。
答案 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)
我希望,我做对了,因为我到现在才使用包裹; - )