当前位置:  开发笔记 > 编程语言 > 正文

如何在其他文件中包含外部Python代码?

如何解决《如何在其他文件中包含外部Python代码?》经验,为你挑选了3个好方法。

如果文件中有方法集合,是否有办法将这些文件包含在另一个文件中,但是调用它们时没有任何前缀(即文件前缀)?

所以,如果我有:

[Math.py]
def Calculate ( num )

我怎么称它为:

[Tool.py]
using Math.py

for i in range ( 5 ) :
    Calculate ( i )

Andrew Hare.. 150

您需要将其他文件作为模块导入,如下所示:

import Math

如果您不想在Calculate函数前添加模块名称,请执行以下操作:

from Math import Calculate

如果要导入模块的所有成员,请执行以下操作:

from Math import *

编辑: 这是Dive Into Python的一个很好的章节,在这个主题上更深入一些.



1> Andrew Hare..:

您需要将其他文件作为模块导入,如下所示:

import Math

如果您不想在Calculate函数前添加模块名称,请执行以下操作:

from Math import Calculate

如果要导入模块的所有成员,请执行以下操作:

from Math import *

编辑: 这是Dive Into Python的一个很好的章节,在这个主题上更深入一些.


值得注意的是,"来自Math import*"是[不推荐](https://www.python.org/dev/peps/pep-0008/#imports).

2> Louis..:

只需编写"include"命令:

import os

def include(filename):
    if os.path.exists(filename): 
        execfile(filename)


include('myfile.py')

@Deleet:

@bfieck评论是正确的,对于python 2和3的兼容性,你需要:

Python 2和3:替代方案1

from past.builtins import execfile

execfile('myfile.py')

Python 2和3:替代方案2

exec(compile(open('myfile.py').read()))


实际上python 3有另一个`compile()`签名而不是提到的签名.所以正确的Python 2和3:替代2将是:`exec(compile(source = open('myfile.py').read(),filename ='myfile.py',mode ='exec'))`
@ naught101:这就是目标:运行代码,导入时不会发生这种情况.通常它只是定义变量.
是否有任何理由在`from module import*`上执行此操作?此外,如果您正在调用的文件在正文中有代码,那么如果您执行此操作,将运行该代码.
如果您希望在"include"的调用者范围内的包含文件中包含变量,则"include"辅助函数不起作用
@Deleet python 3没有`execfile`

3> ryeguy..:

如果您使用:

import Math

然后,这将允许您使用Math的函数,但您必须执行Math.Calculate,因此这显然是您不想要的.

如果要导入模块的函数而不必为它们添加前缀,则必须明确命名它们,如:

from Math import Calculate, Add, Subtract

现在,您可以仅通过名称来引用Calculate,Add和Subtract.如果要从Math导入所有函数,请执行以下操作:

from Math import *

但是,在使用您不确定的内容的模块时,您应该非常小心.如果导入两个包含相同函数名称定义的模块,则一个函数将覆盖另一个函数,而不是更聪明的函数.

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有