পাইথনের আপেক্ষিক আমদানি আর জোরালোভাবে নিরুৎসাহিত করা হয় না, তবে সেই ক্ষেত্রে পরম_আরপোর্ট ব্যবহার করার দৃ strongly় পরামর্শ দেওয়া হয় is
গুইডো নিজেই উদ্ধৃত করে এই আলোচনাটি দেখুন :
"এটি কি বেশিরভাগ historicalতিহাসিক নয়? নতুন আপেক্ষিক-আমদানি সিনট্যাক্স বাস্তবায়িত না হওয়া পর্যন্ত আপেক্ষিক আমদানি নিয়ে বিভিন্ন সমস্যা ছিল। স্বল্পমেয়াদী সমাধানটি সেগুলি ব্যবহার না করার পরামর্শ দেওয়া হয়েছিল। দীর্ঘমেয়াদী সমাধানটি ছিল একটি দ্ব্যর্থহীন বাক্য গঠন কার্যকর করা Now এখন বিরোধী-সুপারিশটি প্রত্যাহার করার সময় এসেছে Of অবশ্যই, ওভারবোর্ড না করেই - আমি এখনও তাদের অর্জিত স্বাদ পাই; তবে তাদের জায়গা রয়েছে have
ওপি সঠিকভাবে পিইপি 328 এর সাথে লিঙ্ক করেছে যা বলে:
বেশ কয়েকটি ব্যবহারের কেস উপস্থাপন করা হয়েছিল, যার মধ্যে সর্বাধিক গুরুত্বপূর্ণ সাব-প্যাকেজগুলি সম্পাদনা না করে বৃহত প্যাকেজগুলির কাঠামো পুনর্বিন্যস্ত করতে সক্ষম হচ্ছে। তদুপরি, প্যাকেজের অভ্যন্তরের কোনও মডিউল আপেক্ষিক আমদানি ছাড়াই সহজে নিজেকে আমদানি করতে পারে না।
পাইথনে আপেক্ষিক আমদানি কখন বা কেন ব্যবহার করতে হবে তা প্রায় সদৃশ প্রশ্ন দেখুন
অবশ্যই এটি এখনও স্বাদের বিষয় হিসাবে দাঁড়িয়েছে। আপেক্ষিক আমদানির সাথে কোড ঘোরানো সহজতর, এটি অপ্রত্যাশিতভাবে জিনিসগুলিও ভেঙে দিতে পারে; এবং আমদানির নামকরণ করা এতটা কঠিন নয়।
পিইপি 328 থেকে নতুন আচরণটি জোর করার জন্য:
from __future__ import absolute_import
এই ক্ষেত্রে, অন্তর্নিহিত আপেক্ষিক আমদানি আর সম্ভব import localfile
হবে না (উদাহরণস্বরূপ , কেবলমাত্র আর কাজ করবে না from . import localfile
)। পরিষ্কার এবং ভবিষ্যতের প্রমাণ আচরণের জন্য, পরম_পিম্প ব্যবহার করা ভাল।
একটি গুরুত্বপূর্ণ সতর্কতা হ'ল পিইপি 338 এবং পিইপি 366 এর কারণে আপেক্ষিক আমদানিতে পাইথন ফাইলটি মডিউল হিসাবে আমদানি করা দরকার - আপনি কোনও ফাইল.পি চালাতে পারবেন না যার আপেক্ষিক আমদানি রয়েছে বা আপনি একটি পাবেন ValueError: Attempted relative import in non-package
।
সেরা পদ্ধতির মূল্যায়ন করার সময় এই সীমাবদ্ধতাটি বিবেচনায় নেওয়া উচিত। গাইড কোনও অবস্থাতেই মডিউল থেকে স্ক্রিপ্ট চালানোর বিরুদ্ধে:
আমি এটিতে এবং _______ মেশিনির অন্য কোনও প্রস্তাবিত ট্যুইডলিংয়ে -1 আছি। একমাত্র ব্যবহারের ক্ষেত্রে স্ক্রিপ্টগুলি চলমান বলে মনে হচ্ছে যেগুলি মডিউলটির ডিরেক্টরিতে বাস করে যা আমি সবসময় একটি অ্যান্টিপ্যাটার্ন হিসাবে দেখেছি। আমাকে আমার মন পরিবর্তন করতে আপনাকে আমাকে বোঝাতে হবে যে এটি তা নয়।
বিষয়টি নিয়ে ক্লান্তিকর আলোচনা এসও-তে পাওয়া যাবে; পুনরায়। পাইথন 3 এটি বেশ ব্যাপক:
from _ import ...
, সুতরাং আপনার উদাহরণগুলি হতে পারেfrom .. import A
এবংfrom . import B