คุณสามารถกำหนดนามแฝงสำหรับโมดูลที่อิมพอร์ตใน Python ได้หรือไม่?


141

ใน Python เป็นไปได้หรือไม่ที่จะกำหนดนามแฝงสำหรับโมดูลที่อิมพอร์ต

ตัวอย่างเช่น

import a_ridiculously_long_module_name

... เพื่อที่จะมีนามแฝงของ 'short_name'

คำตอบ:


191
import a_ridiculously_long_module_name as short_name

ยังใช้งานได้สำหรับ

import module.submodule.subsubmodule as short_name

จากโมดูลนำเข้า sub_module_1 เป็น s1, sub_module_2 เป็น s2
phreed

40

ตรวจสอบที่นี่

import module as name

หรือ

from relative_module import identifier as name

7
อืมเมื่อฉันพยายามที่จะทำfrom name import X(หลังจากนิยามนามแฝง) No module named nameที่ฉันได้รับ เราสามารถนำเข้าโมดูลจากนามแฝงได้หรือไม่
Amelio Vazquez-Reina

2
ดูเหมือนว่าคุณทำไม่ได้นี่คือคำตอบที่ชัดเจนที่สุดที่ฉันพบสำหรับstackoverflow.com/a/40823467
fr_andres

32

หากคุณทำ:

import long_module_name

คุณสามารถให้นามแฝงโดย:

lmn = long_module_name

ไม่มีเหตุผลที่จะทำเช่นนี้ในรหัส แต่บางครั้งฉันก็พบว่ามีประโยชน์ในการล่ามแบบโต้ตอบ


5
สำหรับวัตถุประสงค์บางอย่างนี่จะดีกว่าคำตอบยอดนิยม (นำเข้า long_module_name เป็น lmn) เพราะคุณยังสามารถอ้างอิงโมดูลโดยทั้ง long_module_name.x และ lmn.x
Anas Elghafari

นี่คือการตอบสนองทางเทคนิคที่ถูกต้องสำหรับคำถาม: นามแฝงสำหรับโมดูลที่นำเข้า
DigitalEye

2
สาเหตุที่เป็นไปได้คือโมดูลเป็นวัตถุชั้นหนึ่งใน Python
md2perpe

0

ใช่โมดูลสามารถนำเข้าภายใต้ชื่อนามแฝง ใช้เป็นคำหลัก ดู

import math as ilovemaths # here math module is imported under an alias name
print(ilovemaths.sqrt(4))  # Using the sqrt() function

0

จาก MODULE นำเข้า TAGNAME เป็น ALIAS


1
คุณช่วยอธิบายให้ชัดเจนมากขึ้นได้ไหม? คำตอบนี้จัดรูปแบบไม่ถูกต้องและไม่ได้ให้คำอธิบาย
10 Rep
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.