最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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)呢
因?yàn)槭潜闅v搜索路徑的,所以如果在其它路徑里也有個(gè)同名的module,會(huì)import錯(cuò)。用sys.path.insert(0,parentdir)可以確保先搜索這個(gè)路徑。

解決循環(huán)import的問(wèn)題
在python中常常會(huì)遇到循環(huán)import即circular import的問(wèn)題。
現(xiàn)實(shí)中經(jīng)常出現(xiàn)這種滑稽的情況,
安裝無(wú)線(xiàn)網(wǎng)卡的時(shí)候,需要上網(wǎng)下載網(wǎng)卡驅(qū)動(dòng)..
安裝壓縮軟件的時(shí)候,從網(wǎng)上下載的壓縮軟件安裝程序居然是被壓縮了的..
循環(huán)依賴(lài)就類(lèi)似于這種情況。
舉個(gè)栗子,
在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的問(wèn)題。
解決循環(huán)import的方法主要有幾種。
1.延遲導(dǎo)入(lazy import)
即把import語(yǔ)句寫(xiě)在方法或函數(shù)里面,將它的作用域限制在局部。
這種方法的缺點(diǎn)就是會(huì)有性能問(wèn)題。
2.將from xxx import yyy改成import xxx;xxx.yyy來(lái)訪(fǎng)問(wèn)的形式
3.組織代碼
出現(xiàn)循環(huán)import的問(wèn)題往往意味著代碼的布局有問(wèn)題。
可以合并或者分離競(jìng)爭(zhēng)資源。
合并的話(huà)就是都寫(xiě)到一個(gè)文件里面去。
分離的話(huà)就是把需要import的資源提取到一個(gè)第三方文件去。
總之就是將循環(huán)變成單向。

相關(guān)文章

  • Python 函數(shù)那不為人知的一面

    Python 函數(shù)那不為人知的一面

    通常我們定義一個(gè)函數(shù),然后調(diào)用該函數(shù)時(shí),函數(shù)相關(guān)的代碼才開(kāi)始執(zhí)行??墒呛芏嗳瞬⒉恢溃?dāng)我們定義函數(shù)時(shí),一些代碼就開(kāi)始執(zhí)行了。今天就來(lái)說(shuō)說(shuō)函數(shù)這個(gè)不為人知的一面
    2021-11-11
  • Python中橫向或縱向拼接兩個(gè)表方法實(shí)例

    Python中橫向或縱向拼接兩個(gè)表方法實(shí)例

    最近要將兩個(gè)表格合并,Python處理起來(lái)很簡(jiǎn)單,所以這篇文章主要給大家介紹了關(guān)于Python中橫向或縱向拼接兩個(gè)表的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • python中正則的使用指南

    python中正則的使用指南

    正則表達(dá)式(RE)是一種小型的、高度專(zhuān)業(yè)化的編程語(yǔ)言,它內(nèi)嵌在Python中,并通過(guò)re模塊實(shí)現(xiàn)。下面我們就來(lái)詳細(xì)探討下Python中正則表達(dá)式的使用
    2016-12-12
  • Python中字符串的格式化方法小結(jié)

    Python中字符串的格式化方法小結(jié)

    這篇文章主要介紹了Python中字符串的格式化方法小結(jié),提到了針對(duì)Python2.x與3.x版本相異情況下的不同技巧,需要的朋友可以參考下
    2016-05-05
  • python模擬登陸阿里媽媽生成商品推廣鏈接

    python模擬登陸阿里媽媽生成商品推廣鏈接

    這篇文章主要介紹了python模擬登陸阿里媽媽生成商品推廣鏈接,需要的朋友可以參考下
    2014-04-04
  • Python高級(jí)排序sort()函數(shù)使用技巧實(shí)例探索

    Python高級(jí)排序sort()函數(shù)使用技巧實(shí)例探索

    本文詳細(xì)介紹sort()函數(shù)的使用,包括基本排序、自定義排序、逆序排序等多種情況,并提供大量示例代碼,以幫助你充分理解和掌握這一函數(shù)的用法,探索更多sort()排序函數(shù)的作用
    2024-01-01
  • 淺談Python type的使用

    淺談Python type的使用

    今天小編就為大家分享一篇淺談Python type的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Pyhton多線(xiàn)程采集圖片方式

    Pyhton多線(xiàn)程采集圖片方式

    這篇文章主要介紹了Pyhton多線(xiàn)程采集圖片方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Python使用Streamlit快速創(chuàng)建儀表盤(pán)

    Python使用Streamlit快速創(chuàng)建儀表盤(pán)

    這篇文章主要為大家詳細(xì)介紹了Python如何使用Streamlit快速創(chuàng)建一個(gè)簡(jiǎn)單的儀表盤(pán),文中的示例代碼簡(jiǎn)潔易懂,快跟隨小編一起來(lái)學(xué)習(xí)一下吧
    2023-09-09
  • centos下更新Python版本的步驟

    centos下更新Python版本的步驟

    安裝完CentOS5.9(Final)后,執(zhí)行#Python與#python -V,看到版本號(hào)是2.4.3,很老了,而且之前寫(xiě)的都是跑在python3.X上面的,3.X和2.X有很多不同,有興趣的朋友可以參考下這篇文章
    2013-02-02

最新評(píng)論

镇远县| 郴州市| 邹城市| 牟定县| 离岛区| 阿拉善左旗| 余江县| 台中市| 岳西县| 新泰市| 梁山县| 红安县| 隆昌县| 资阳市| 陆川县| 琼海市| 双牌县| 邹平县| 嘉兴市| 马尔康县| 德江县| 毕节市| 广水市| 阆中市| 平舆县| 龙泉市| 化隆| 仁布县| 贺州市| 临清市| 和硕县| 正蓝旗| 开阳县| 灌南县| 武宣县| 闸北区| 昭平县| 景谷| 正安县| 永春县| 游戏|