對於導入的模塊,是否可以獲取導入模塊(名稱)?我想知道是否檢查是否可以實現它?是否有可能在Python中的「導入模塊」中獲得「導入模塊」?
2
A
回答
2
foo.py:
進口酒吧
bar.py:
import traceback
try:
filename,line_number,function_name,text = traceback.extract_stack()[-2]
print(filename,line_number,function_name,text)
except IndexError:
pass
運行foo.py收益率類似
('/home/unutbu/pybin/foo.py', 4, '<module>', 'import bar')
3
這聽起來像你解決了你自己的問題:使用inspect
模塊。我會遍歷堆棧,直到找到當前函數不是__import__
的框架。但我敢打賭,如果你告訴人們你爲什麼要這樣做,他們會告訴你不要。
3
即使你得到它的工作,這可能比你想象的有用,因爲隨後的導入只複製現有的引用,而不是再次執行模塊。
1
import inspect
result = filter(lambda v:inspect.ismodule(v), globals().values())
#result is a collection of all imported modules in the file, the name of any of which can be easily got by .__name__
#replace globals() with inspect.getmembers(wanted_module) if you want the result outside the wanted module
相關問題
- 1. 是否有可能使所有模塊隱式導入模塊?
- 2. Python是否將模塊路徑中的所有模塊導入?
- 3. 在Python中導入模塊
- 4. 在Python中導入模塊
- 5. 在Python中導入模塊
- 6. 是否有可能在JavaScript中迭代導入的模塊?
- 7. 從導入模塊的模塊中導入功能
- 8. 導入導入主模塊的模塊
- 9. Python模塊導入*
- 10. Python模塊導入
- 11. 導入Python模塊
- 12. Python導入模塊
- 13. python導入模塊
- 14. 有導入Python模塊
- 15. Python:從導入的模塊中獲取導入模塊的詳細信息
- 16. 的Python:模塊的導入模塊
- 17. python模塊是否被導入兩次?
- 18. Python:已導入的導入模塊
- 19. Python導入模塊,所有導入另一個模塊是相同的
- 20. 是否有理由在Python中導入字符串模塊?
- 21. 在Python中嘲笑導入的模塊
- 22. 的Python - 導入模塊
- 23. Python子模塊:「導入爲」與「導入」
- 24. Python導入模塊vs導入_module
- 25. 爲什麼導入python模塊不導入嵌套模塊?
- 26. 未能導入模塊在python
- 27. 在Angular2中導入模塊
- 28. 在模塊中導入類
- 29. 在模塊中導入android.bluetooth.BluetoothDevice
- 30. 在D中導入模塊
這應該可能是一個評論,但是重要的信息。 – 2012-02-02 03:52:28
@Karl:儘管它可以被看作是一個評論,但它在回答「否」的問題上做得很好。 – 2012-02-02 04:10:22
想知道「不建議這樣做」背後的原因。我想要做的是提供一個函數** deprecatedModule(new_module)**用於不推薦的模塊。 – Drake 2012-02-02 16:17:41