python 模組和包 需要注意的地方

2021-09-08 13:25:24 字數 1542 閱讀 4195

一 模組

1.import

import module:

將執行檔案(module)的目錄路徑插入到sys.path的第乙個位置

執行時:

1.建立新的命名空間

2.執行被呼叫的模組

第二次呼叫,不會再執行該模組,只是完成一次引用

(import語句是可以在程式中的任意位置使用的,且針對同乙個模組很import多次,為了防止你重複匯入,python的優化手段是:第一次匯入後就將模組名載入到記憶體了,後續的import語句僅是對已經載入大記憶體中的模組物件增加了一次引用,不會重新執行模組內的語句)

2為模組名起別名,相當於m1=1;m2=m1 

1 import my_module as sm

2 print(sm.money)

示範用法一:

有兩中sql模組mysql和oracle,根據使用者的輸入,選擇不同的sql功能

示範用法二: 

為已經匯入的模組起別名的方式對編寫可擴充套件的**很有用,假設有兩個模組xmlreader.py和csvreader.py,它們都定義了函式read_data(filename):用來從檔案中讀取一些資料,但採用不同的輸入格式。可以編寫**來選擇性地挑選讀取模組,例如

from 模組 import 變數名

from modname import name1[, name2[, ... namen]]

import 模組名 【同一目錄下可以直接import】 要呼叫模組內的變數,需要 模組名.變數名 函式呼叫: 模組名.函式名()

from 模組名 import 變數名1 (或函式名) 只匯入了模組名下的變數名1

from 模組名 import * 可以直接引起 模組名下的所有變數名(包括函式名)

用*匯入要注意,在使用模組內的變數名時,可能會與執行檔案中的變數名(或函式名)相同,發生覆蓋,

1.若先定義了本函式中的變數名,後匯入模組,執行相同變數名時,引用的是模組內變數名的意義

2.若先導入了模組,後定義了變數名,則引用的是後定義時的意義 (類似定義變數)

二 包(package)

組織模組的方式:包

在python中,包可以理解成乙個資料夾,但是每乙個資料夾裡必須要有乙個__init__檔案

2.1 from 包 import 模組

2.2 同級目錄下的被呼叫模組之間的相互呼叫

2.3 if __name__=='__main__':

2.4 from 包.包 import 模組

from 包.包.模組 import 變數名字

2.5 __init__檔案的作用

from 包 import 模組

【重要】執行檔案時,會將檔案所在目錄路徑,插入到sys.path的第乙個位置,此時執行檔案中 from 包 import 模組名,

from 會從執行檔案所在目錄下面,也就是執行檔案同級目錄中找包(如果)

1.檔案和包在同一目錄下,

Python閉包需要注意的問題

python中的閉包從表現形式上定義為 如果在乙個內部函式裡,對在外部作用域 但不是在全域性作用域 的變數進行引用,那麼內部函式就被認為是閉包 closure 也就是說內層函式引用了外層函式的變數然後返回內層函式的情況就稱之為閉包。閉包的特點是返回的函式還引用了外層函式的區域性變數。所以,要正確使用...

需要注意的問題

決策樹id3和c4.5的差別?各自優點?boost演算法 cart 回歸樹用平方誤差最小化準則,分類樹用基尼指數最小化準則 gbdt與隨機森林演算法的原理以及區別。優化演算法中常遇到的kkt條件?作用是?最近鄰演算法knn 分類與回歸 l1和l2函式?l1和l2正則項的比較,如何解決 l1 求導困難...

const需要注意的

1.對於函式後邊新增const後,函式成為const型別,該函式中不允許對類中成員進行修改,可以認為是在該函式中,類成為了const型別。另外要注意的是,const函式中只能呼叫const型別的函式。2.對於const型別的變數來說,只能把const的賦值給非const,不能把非const賦值給co...