نام را به یک شیء حل میکند.
این قابلیت در جاهای متعددی در کتابخانه استاندارد استفاده میشود (به bpo-12915 مراجعه کنید) - و قابلیت معادل آن نیز در بستههای شخص ثالث پرکاربرد مانند setuptools، Django و Pyramid وجود دارد.
انتظار میرود name رشتهای در یکی از قالبهای زیر باشد، که در آن W مخفف یک شناسه معتبر پایتون است و نقطه در این شبهعبارتهای باقاعده به معنای یک نویسه نقطه واقعی است:
W(.W)*
W(.W)*:(W(.W)*)?
W(.W)*:(W(.W)*)
شکل اول فقط برای سازگاری با نسخههای پیشین در نظر گرفته شده است. این شکل فرض میکند که بخشی از نام نقطهدار یک بسته است و باقیمانده، شیءای در جایی درون آن بسته است که ممکن است درون اشیاء دیگر تودرتو شده باشد. از آنجا که نمیتوان با بازرسی استنتاج کرد که بسته کجا تمام میشود و سلسلهمراتب اشیاء آغاز میگردد، تلاشهای مکرر برای ایمپورت باید با این شکل انجام شوند.
در شکل دوم، فراخواننده با قرار دادن یک دونقطه، نقطه جداسازی را مشخص میکند: نام نقطهدار سمت چپ دونقطه، بستهای است که باید ایمپورت شود، و نام نقطهدار سمت راست، سلسلهمراتب شیء درون آن بسته است. در این شکل فقط به یک ایمپورت نیاز است. اگر با دونقطه پایان یابد، یک شیء ماژول برگردانده میشود.
دو فرم اول زمانی پذیرفته میشوند که strict=False باشد (حالت پیشفرض).
فرم سوم نیازمند نام ماژول و شیء فراخوانیپذیر است که با یک علامت دونقطه (colon) از هم جدا شدهاند. فقط این فرم است که وقتی strict=True باشد پذیرفته میشود.
این تابع یک شیء را برمیگرداند (که ممکن است یک ماژول باشد)، یا یکی از استثناهای زیر را پرتاب میکند:
ValueError -- اگر name در قالبی شناختهشده نباشد.
ImportError -- اگر ایمپورتی زمانی که نباید شکست میخورد، شکست خورد.
AttributeError -- اگر خطایی هنگام پیمایش سلسلهمراتب اشیاء درون بستهی ایمپورتشده برای رسیدن به شیء مورد نظر رخ داد.
تغییر یافته در نسخهی 3.15: پرچم اختیاری و فقط-کلیدواژهی strict اضافه شد.