簡體   English   中英

如何在不真正導入的情況下使用長 python 模塊包的別名?

[英]How to use alias of a long python module package without really importing it?

我需要從長名稱模塊路徑導入幾個模塊:

import a.b.c.d.m1 as m1
import a.b.c.d.m2 as m2
import a.b.c.d.m3 as m3

我只能寫一次長名稱,如下所示:

import a.b.c.d as d
m1 = d.m1
m2 = d.m2
m3 = d.m3

但是這樣,包 d 就完全導入了,這是我不想要的。

有沒有辦法只使用某些東西來“記住”模塊路徑,而無需真正導入它。 因此,稍后我們可以輕松導入其子模塊。

alias d = a.b.c.d
from d import m1
from d import m2
from d import m3

從我從您的問題中了解到的部分來看,您似乎需要這樣的東西:

from abcd import m1,m2,m3

當逗號可以完成工作時,為什么要使用復雜的東西?

嗯,什么意思

包 d 是完全導入的,我不想要

當你執行

from a.b.c.d import m1

導入機制會導入所有父包,這意味着這里aababcabcd將它們添加到sys.module緩存中,並且只將m1添加到您的全局變量列表中。

所以如果你寫:

from a.b.c import d
from d import m1

當您與前一種情況進行比較時,您導入相同的包並且只添加對全局變量列表的d引用。

所以你想要的別名機制沒有包含在語言中,因為它感覺不夠有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM