千家信息网

Python中怎么导入循环方法

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Python中怎么导入循环方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。from cli4vof import cli4vof#
千家信息网最后更新 2025年12月02日Python中怎么导入循环方法

Python中怎么导入循环方法,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

from cli4vof import cli4vof

# command line interface utility function

def cli_util():

pass

# overly massive handlers for the command line interface

def omh5cli():

:

cli4vof()

:

omh5cli()

假定大多控制器都要用到这里的(其实是空的)工具函数。命令行接口的 OMH 都被封装在 omh5cli() 函数里。 如果我们要添加一个新的命令, 那么它会被调用。

现在这个模块不断地增长, 一些聪明的工程师会决定把新命令放入到隔离的模块里, 在原始模 块中只提供访问新东西的钩子。 这样, 管理代码会变得更简单, 如果在新加入内容中发现了 bug , 那么你就不必在一个几兆的 Python 文件里搜索。

在我们的例子中, 有一个兴奋的经理要我们加入一个 "非常好的特性"。我们将创建一个新的 cli4vof.py 脚本, 而不是把新内容集成到omh5cli.py 里:

import omh5cli

# command-line interface for a very outstanding feature

def cli4vof():

omh5cli.cli_util()

前边已经提到, 工具函数是每个命令必须的, 而且由于不能把代码从主控制器复制出来, 所以 我们导入了主模块, 在我们的控制器中添加对 omh , omh5cli() 的调用。

问题在于主控制器 omh5cli 会导入我们的 cli4vof 模块(获得新命令的函数), 而 cli4vof 也会导入 omh5cli (用于获得工具函数)。模块导入会失败, 这是因为 Python 尝试导入一个先前没 有完全导入的模块:

$ python omh5cli.py

Traceback (most recent call last):

File "omh5cli.py", line 3, in ? from cli4vof import cli4vof

File "/usr/prod/cli4vof.py", line 3, in ?

import omh5cli

File "/usr/prod/omh5cli.py", line 3, in ?

from cli4vof import cli4vof

ImportError: cannot import name cli4vof

注意跟踪返回消息中显示的对 cli4vof 的循环导入。 问题在于要想调用工具函数, cli4vof 必 须导入 omh5cli 。 如果它不需要这样做, 那么 omh5cli 将会成功导入 cli4vof , 程序正常执行。 但在这里, omh5cli 尝试导入 cli4vof , 而 cli4vof 也试着导入 omh5cli 。 最后谁也不会完成 导入工作, 引发错误。 这只是一个导入循环的例子。 事实上实际应用中会出现更复杂的情况。

解决这个问题几乎总是移除其中一个导入语句。 你经常会在模块的最后看到 import 语句。作 为一个初学者, 你只需要试着习惯它们, 如果你以前遇到在模块底部的 import 语句,现在你知道是为什么了。在我们的例子中, 我们不能把 import omh5cli 移到最后, 因为调用 cli4vof() 的时候 omh5cli() 名字还没有被载入。

$ python omh5cli.py

Traceback (most recent call last): File "omh5cli.py", line 3, in ? from cli4vof import

cli4vof

File "/usr/prod/cli4vof.py", line 7, in ?

import omh5cli

File "/usr/prod/omh5cli.py", line 13, in ?

omh5cli()

File "/usr/prod/omh5cli.py", line 11, in omh5cli cli4vof()

File "/usr/prod/cli4vof.py", line 5, in cli4vof omh5cli.cli_util()

NameError: global name 'omh5cli' is not defined

我们的解决方法只是把 import 语句移到 cli4vof() 函数内部:

def cli4vof():

import omh5cli

omh5cli.cli_util()

关于Python中怎么导入循环方法问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

模块 函数 问题 命令 方法 循环 工具 语句 例子 代码 内容 制器 只是 控制器 更多 主控 尝试 帮助 控制 解答 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 四川互联网展览科技馆设计 submeta服务器地址是什么 数据库怎么查全部表 网络安全工程师要会编程吗 云服务器的管理用户名密码 数据库技术的发展及新技术 怎么把自己的项目发布到服务器上 大同电信宽带dns服务器地址 服务器UEFIonly在哪关 苏州亮诺软件开发有限公司 网络安全审查办公室设在___ 计算机网络技术基础学习总结 辽宁立体化软件开发包括哪些 网络安全教育竞答 网络技术公司 上海 腾讯云服务器实名 联创安家江苏网络技术有限公司电话 淮安网络安全准入控制供应商 惠普服务器关闭网络启动 广西北斗守时模块服务器 计算机网络技术与应用 课件 战地5开服务器没人怎么办 云服务器的安全性腾讯 浪潮连接不上服务器为什么 数据库技术及应用 李雁翎 甲基化位点在线数据库 网络安全防御系统事例 邮件服务器哪里下载 网络安全规定关键信息 网络安全运维有哪些
0