【问题标题】:Include/embed python file "as is"“按原样”包含/嵌入python文件
【发布时间】:2018-07-17 11:32:03
【问题描述】:

为了更好的代码可读性,假设我已将我的代码逻辑拆分为不同的 python 文件,我的主要main.py 文件和一个included.py 文件。我想在主文件中嵌入included.py

我知道可以在main.py 上使用import(例如from included import *),但是在某些情况下,main.py 文件上的对象/类/变量也可以在included.py 文件上导入(例如from main import *)。

我想做的是通过强制解释器在我的main.py 文件的特定位置“按原样”导入included.py 文件(就像PHP 那样,使用include 语句)读取文件内容并将其放置在指定位置。

有可能吗?

【问题讨论】:

  • 我认为最好设计成只在另一个文件中包含一个文件,而不是循环方式。

标签: python python-3.x python-2.7 import python-import


【解决方案1】:

在 Python 2 中,尝试 execfile() 命令:

execfile('included.py')

在 Python 3 中,尝试

exec(compile(open('included.py', "rb").read(), 'included.py', 'exec'))    

我进行了一个简单的测试,这似乎有效。它对您的情况有帮助吗?

更多“传统”导入方式: https://stackoverflow.com/a/20749411/5172579

Python2 的 execfile() 和 Python3 的 exec() 的关系: https://stackoverflow.com/a/6357418/5172579

附言如评论中所述:一般应避免循环导入,并且很容易导致无限的导入递归。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 2014-03-15
    • 2022-06-23
    • 2017-11-10
    • 1970-01-01
    • 2020-12-04
    • 2023-01-10
    相关资源
    最近更新 更多