[英]Runtime import with with multiple subdirectories in python
在python中執行這種類型的導入的最佳方法是什么
要導入的文件,該文件位於位置one / ne_one / one_two /“
文件名:two.py
def foo():
print "venkatttt!"
主文件:main.py
s = __import__("one.one_one.one_two.two", fromlist=[])
function_class = getattr(s,"one_one")
function_class1 = getattr(function_class,"one_two")
function_class2 = getattr(function_class1,"two")
print s
print function_class
print function_class1
print function_class2
function_class2.foo()
此代碼的輸出:
<module 'one' from '/opt/auto/src/ex/one/__init__.pyc'>
<module 'one.one_one' from '/opt/auto/src/ex/one/one_one/__init__.pyc'>
<module 'one.one_one.one_two' from '/opt/auto/src/ex/one/one_one/one_two/__init__.pyc'>
<module 'one.one_one.one_two.two' from '/opt/auto/src/ex/one/one_one/one_two/two.py'>
venkatttt!
我正在尋找執行此導入的最佳方法
從輸出中,我可以看到每個子目錄中已經有__init__.py
文件,因此,您可以簡單地import
它們:
$> from one.one_one.one_two.two import foo
$> foo()
如果需要每個模塊的句柄,則可以分別導入它們:
$> import one.one_one as function_class
$> import one.one_one.one_two as function_class1
$> import one.one_one.one_two.two as function_class2
最后,您還可以在one/__init__.py
定義__all__
,並在執行import one
時自動執行此自動import one
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.