中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中怎么導入循環方法

發布時間:2021-08-11 14:49:36 來源:億速云 閱讀:240 作者:Leah 欄目:大數據

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中怎么導入循環方法問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

吉木乃县| 德清县| 铁岭县| 通城县| 高要市| 宣化县| 涟水县| 榕江县| 贵阳市| 湖南省| 漯河市| 黎平县| 望江县| 鲁甸县| 汉寿县| 论坛| 福泉市| 常州市| 邹城市| 南皮县| 舞阳县| 安仁县| 临沭县| 郁南县| 弥勒县| 津南区| 宣武区| 简阳市| 措勤县| 阿克| 安溪县| 边坝县| 龙陵县| 新竹市| 资溪县| 卓尼县| 湖南省| 岑巩县| 阿荣旗| 夹江县| 云浮市|