當我讀取一個文件riak-python-client/riak/riak_object.py
。在文件的底部,我看到這個什麼時候導入模塊在文件底部
from mapreduce import *
它有什麼用途?爲什麼只是在文件的頂部導入。
當我讀取一個文件riak-python-client/riak/riak_object.py
。在文件的底部,我看到這個什麼時候導入模塊在文件底部
from mapreduce import *
它有什麼用途?爲什麼只是在文件的頂部導入。
這是爲了將所有模塊mapreduce
放在riak_object
命名空間中。如果您將此導入置於riak_object.py
的頂部,則會出現錯誤,因爲mapreduce
從riak_object
導入RiakObject
,這尚未定義。
您可以在文件的任意位置使用import
;您只需確保在導入之前不嘗試使用模塊中的內容。
如果這實際上是最後一行在文件中運行,那麼它將不起任何作用。如果它位於文件的底部,但位於某個函數或方法內部,則可能意味着該函數/方法不會頻繁運行,並且作者不希望每次運行程序時都會導入mapreduce
的開銷。
我不知道該項目的具體推理,但只需將導入放在文件的頂部。這使得依賴關係更容易跟蹤,並由Python's style guide推薦。
從技術上講,import
語句導入的代碼僅在import
語句執行後纔可用。這意味着當你把它放在你的文件的底部時,你不能使用那個文件中導入的任何東西(在模塊級別)。該文件中的函數可以使用進口...但這只是不好的做法。
的唯一原因將是riak_object
(這似乎並不需要從mapreduce
什麼?)帶來到其命名空間的所有值(或由指定__all__
)從mapreduce
爲某種方便。