亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python中import導(dǎo)入上一級目錄模塊及循環(huán)import問題的解決

 更新時間:2016年06月04日 10:58:57   作者:mattkang  
Python中的import語句導(dǎo)入模塊相信大家再熟悉不過了,這里我們會來講解Python中import導(dǎo)入上一級目錄模塊及循環(huán)import問題的解決,需要的朋友可以參考下

import上一級目錄的模塊
python中,import module會去sys.path搜索,sys.path是個列表,并且我們可以動態(tài)修改。
要import某個目錄的module,我們sys.path.insert(0,somedir)來加入搜索路徑,就可以import了。
既然這樣,要import上一級目錄的module,可以sys.path.insert(0,parentdir)。
不過這種寫絕對路徑的方式,如果文件放到其它地方,就不行了。
所以用動態(tài)方法來獲取上一級目錄。

import os,sys 
parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
sys.path.insert(0,parentdir)  

為什么用sys.path.insert(0,parentdir) 而不是用sys.path.append(parentdir)呢
因為是遍歷搜索路徑的,所以如果在其它路徑里也有個同名的module,會import錯。用sys.path.insert(0,parentdir)可以確保先搜索這個路徑。

解決循環(huán)import的問題
在python中常常會遇到循環(huán)import即circular import的問題。
現(xiàn)實中經(jīng)常出現(xiàn)這種滑稽的情況,
安裝無線網(wǎng)卡的時候,需要上網(wǎng)下載網(wǎng)卡驅(qū)動..
安裝壓縮軟件的時候,從網(wǎng)上下載的壓縮軟件安裝程序居然是被壓縮了的..
循環(huán)依賴就類似于這種情況。
舉個栗子,
在models.py中,

from server import db 
class User(db.Model): 
  pass 

在server.py中,

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 
app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' 
db = SQLAlchemy(app) 
from models import User 

這樣就產(chǎn)生了循環(huán)import的問題。
解決循環(huán)import的方法主要有幾種。
1.延遲導(dǎo)入(lazy import)
即把import語句寫在方法或函數(shù)里面,將它的作用域限制在局部。
這種方法的缺點就是會有性能問題。
2.將from xxx import yyy改成import xxx;xxx.yyy來訪問的形式
3.組織代碼
出現(xiàn)循環(huán)import的問題往往意味著代碼的布局有問題。
可以合并或者分離競爭資源。
合并的話就是都寫到一個文件里面去。
分離的話就是把需要import的資源提取到一個第三方文件去。
總之就是將循環(huán)變成單向。

相關(guān)文章

  • python畫折線圖的程序

    python畫折線圖的程序

    這篇文章主要為大家詳細介紹了python畫折線圖的方法,一個畫折線圖的程序具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python使用Flask-SQLAlchemy連接數(shù)據(jù)庫操作示例

    Python使用Flask-SQLAlchemy連接數(shù)據(jù)庫操作示例

    這篇文章主要介紹了Python使用Flask-SQLAlchemy連接數(shù)據(jù)庫操作,簡單介紹了flask、Mysql-Python以及Flask-SQLAlchemy的安裝方法,并結(jié)合實例形式分析了基于Flask-SQLAlchemy的數(shù)據(jù)庫連接相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài)的問題小結(jié)

    python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài)的問題小結(jié)

    這篇文章主要介紹了python中windows鏈接linux執(zhí)行命令并獲取執(zhí)行狀態(tài),由于工具是pyqt寫的所以牽扯到用python鏈接linux的問題,這里記錄一下一些碰到的問題,需要的朋友可以參考下
    2022-11-11
  • pytorch 使用單個GPU與多個GPU進行訓(xùn)練與測試的方法

    pytorch 使用單個GPU與多個GPU進行訓(xùn)練與測試的方法

    今天小編就為大家分享一篇pytorch 使用單個GPU與多個GPU進行訓(xùn)練與測試的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python?selenium?find_element()示例詳解

    Python?selenium?find_element()示例詳解

    selenium定位元素的函數(shù)/方法可以分為兩類:find_element及find_elements,下面這篇文章主要給大家介紹了關(guān)于Python?selenium?find_element()的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Python用來做Web開發(fā)的優(yōu)勢有哪些

    Python用來做Web開發(fā)的優(yōu)勢有哪些

    這篇文章主要介紹了Python用來做Web開發(fā)的優(yōu)勢有哪些,文中講解非常細致,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下
    2020-08-08
  • 從零學(xué)Python之入門(四)運算

    從零學(xué)Python之入門(四)運算

    最近2天,各種不順利,還被一個油門當剎車的憨貨給追尾了,所以本系列發(fā)的比較少,本文是系列的第四篇,講述的是Python的運算
    2014-05-05
  • 對于Python的框架中一些會話程序的管理

    對于Python的框架中一些會話程序的管理

    這篇文章主要介紹了對于Python的框架中一些會話程序的管理,會話的實現(xiàn)是Python框架的基本功能,本文主要講述了對其的一些管理維護要點,需要的朋友可以參考下
    2015-04-04
  • Python導(dǎo)入模塊的3種方式超級詳細講解

    Python導(dǎo)入模塊的3種方式超級詳細講解

    這篇文章主要給大家介紹了關(guān)于Python導(dǎo)入模塊的3種方式,本文介紹了在Python中使用模塊的概念和不同的導(dǎo)入方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • python隱藏終端執(zhí)行cmd命令的方法

    python隱藏終端執(zhí)行cmd命令的方法

    今天小編就為大家分享一篇python隱藏終端執(zhí)行cmd命令的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06

最新評論