2017-10-14 93 views
0

我有一個包含一些函數的.py文件。其中一個功能需要Python的csv模塊。我們稱之爲foo在另一個模塊中使用模塊

這是事情:如果我進入python shell,導入csv模塊,寫入foo的defitinion並使用它,一切運行良好。

當我嘗試從自定義模塊導入foo時出現問題。如果我進入python shell,導入csv模塊,導入foo所在的模塊並嘗試使用它,它將返回一個錯誤,指出'csv'沒有被定義(它的行爲就好像csv模塊沒有被進口)。

我想知道我是否缺少某種與進口相關的作用域行爲。

如何啓用foo以使用csv模塊或任何其他需要的模塊?

預先感謝您

+1

'foo'是否包含語句'import csv'? – snakecharmerb

回答

0

通過定義foo函數的文件進口它。

foo函數不知道在包含您在REPL中使用的全局變量(您已導入csv)的字典中查找。它看起來是模塊的全局變量(當然這裏還有其他步驟),如果它沒有找到它,你會得到一個NameError

+0

ευχαριστώ!這將爲我的情況。但我很好奇:是否有任何方法可以在REPL中讀取foo或將csv模塊傳遞給foo模塊範圍? –

+0

@PabloMΠαρακαλώ:)!是的,您始終可以將csv模塊附加到包含foo的模塊。例如,如果'mod.py'是模塊的名稱,並且通過'import mod'導入它,則可以(在導入'csv'後)'mod.csv = csv'。當然,這是一種奇怪的做事方式。 –

+0

我有這樣的想法。大!非常感謝! –

相關問題