如果文件中有方法集合,是否有办法将这些文件包含在另一个文件中,但是调用它们时没有任何前缀(即文件前缀)?
所以,如果我有:
[Math.py]
def Calculate ( num )
Run Code Online (Sandbox Code Playgroud)
我怎么称它为:
[Tool.py]
using Math.py
for i in range ( 5 ) :
Calculate ( i )
Run Code Online (Sandbox Code Playgroud)
And*_*are 150
您需要将其他文件作为模块导入,如下所示:
import Math
Run Code Online (Sandbox Code Playgroud)
如果您不想在Calculate
函数前添加模块名称,请执行以下操作:
from Math import Calculate
Run Code Online (Sandbox Code Playgroud)
如果要导入模块的所有成员,请执行以下操作:
from Math import *
Run Code Online (Sandbox Code Playgroud)
编辑: 这是Dive Into Python的一个很好的章节,在这个主题上更深入一些.
Lou*_*uis 46
只需编写"include"命令:
import os
def include(filename):
if os.path.exists(filename):
execfile(filename)
include('myfile.py')
Run Code Online (Sandbox Code Playgroud)
@Deleet:
@bfieck评论是正确的,对于python 2和3的兼容性,你需要:
Python 2和3:替代方案1
from past.builtins import execfile
execfile('myfile.py')
Run Code Online (Sandbox Code Playgroud)
Python 2和3:替代方案2
exec(compile(open('myfile.py').read()))
Run Code Online (Sandbox Code Playgroud)
rye*_*guy 33
如果您使用:
import Math
Run Code Online (Sandbox Code Playgroud)
然后,这将允许您使用Math的函数,但您必须执行Math.Calculate,因此这显然是您不想要的.
如果要导入模块的函数而不必为它们添加前缀,则必须明确命名它们,如:
from Math import Calculate, Add, Subtract
Run Code Online (Sandbox Code Playgroud)
现在,您可以仅通过名称来引用Calculate,Add和Subtract.如果要从Math导入所有函数,请执行以下操作:
from Math import *
Run Code Online (Sandbox Code Playgroud)
但是,在使用您不确定的内容的模块时,您应该非常小心.如果导入两个包含相同函数名称定义的模块,则一个函数将覆盖另一个函数,而不是更聪明的函数.
归档时间: |
|
查看次数: |
225042 次 |
最近记录: |