কি করে পাইথনে একটি আমদানির বিবৃতি মানে?


141

আমি পাইথনের multiprocessingমডিউলটির কোডটি সন্ধান করছি এবং এটিতে এই লাইনটি রয়েছে:

from ._multiprocessing import win32, Connection, PipeConnection

পরিবর্তে

from _multiprocessing import win32, Connection, PipeConnection

সূক্ষ্ম পার্থক্য আগে সময়কাল হচ্ছে _multiprocessing। ওটার মানে কি? পিরিয়ড কেন?


3
একে আপেক্ষিক আমদানি বলা হয়: ডকস.পাইথন.আর.
মডুলস

এটি ছাড়া ., যদি _multiprocessing.pyআপনার মূল স্ক্রিপ্টের পাশে কোনও অনিবার্য কারণে যদি আপনার কাছে একটি ফাইল থাকে , multiprocessingতবে এটি ভেঙে যায়। এর সাথে ., এটি এটির নিজস্ব মডিউলটি নিশ্চিত করে।
ক্রিস মরগান

যদি কোনও .পিয়ার মডিউলগুলি বোঝায়, ডকুমেন্টেশনটি .যখন এমন মাল্টিপ্রসেসিং মডিউলটি নিয়মিত sys.path লাইব্রেরির অংশ হওয়া উচিত তখন কেন এটি ব্যবহার করতে বলবে ? প্রশ্ন এবং ক্রিসের ব্যাখ্যাগুলি কি তাদের সাথে মিশেছে বা আমি বুঝতে পারছি না? সাহায্যের প্রশংসা করুন।
rfii

উত্তর:


120

সুস্পষ্ট আপেক্ষিক আমদানির জন্য এটিই নতুন সিনট্যাক্স । এর অর্থ বর্তমান প্যাকেজ থেকে আমদানি।


26
"বর্তমান প্যাকেজ" কি তা সংজ্ঞায়িত করে?
ফ্রেমচার

7
এটা বলা উচিত যেখানে আমদানি প্যাকেজ থেকে । এটির মূল অর্থ বর্তমান নামস্থান বা প্যাকেজ ডিরেক্টরি।
কিথ

2
ধন্যবাদ, আমি মনে করি আপনি কী বলতে চাইছেন তা আমি জানি। কেবল স্পষ্ট করে বলতে গেলে, আপনি কি একটি উদাহরণ দেওয়ার বিষয়ে আপত্তি করবেন?
ফ্রেমচার

11
আপনি এই জাতীয় জিনিসগুলি করতে পারেন:from . import peermodule from .. import parentpackagemodule
কিথ

2
@ বিএমসি শেখার একটি ভাল উপায় হ'ল সামান্য পরীক্ষা-নিরীক্ষা করা এবং নিজে চেষ্টা করে দেখানো। ;-)
কিথ

22

মডিউল নামের বিন্দুটি আপেক্ষিক মডিউল আমদানির জন্য ব্যবহৃত হয় (দেখুন এখানে এবং এখানে বিভাগ 6.4.2)।

আপনি একাধিক বিন্দু ব্যবহার করতে পারেন, নিরাময়কারী প্যাকেজটি নয় বরং এর পিতামাতার (গুলি) উল্লেখ করে। এটি কেবল প্যাকেজগুলির মধ্যেই ব্যবহার করা উচিত, মূল মডিউলে সর্বদা পরম মডিউল নাম ব্যবহার করা উচিত।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.