Python的一個名稱空間衝突,關於from-import機制

王明輝發表於2018-01-30
from os import *
#import os

def foo():
    a = listdir("trainingDigits")
    b = open("trainingDigits/0_0.txt")

這段程式碼,如果僅啟用

from os import *

就會在

b = open("trainingDigits/0_0.txt")

這個位置報

TypeError: Required argument 'flags' (pos 2) not found這個錯

如果僅啟用

import os

就會在a = listdir("trainingDigits")這個位置報NameError: name 'listdir' is not defined這個錯

解決方法是

import os

def foo():
    a = os.listdir("trainingDigits")
    b = open("trainingDigits/0_0.txt")

這個涉及到from-import的匯入機制了,簡書上有一篇文章講得比較清楚,有時間詳細看看

https://www.jianshu.com/p/c82429550dca

 

相關文章