আমদানি হচ্ছে মডিউল নষ্ট করেন না কিছু ; মডিউলটি সর্বদা সম্পূর্ণভাবে আমদানি করা হয় ( sys.modulesম্যাপিংয়ে), সুতরাং আপনি ব্যবহার করেন import sysবা from sys import argvকোনও প্রতিকূলতা তৈরি করেন না।
দুটি বিবৃতি মধ্যে পার্থক্য শুধুমাত্র নাম আবদ্ধ হয়; import sysনামটিকে sysমডিউলটিতে (তাই sys-> sys.modules['sys']) from sys import argvআবদ্ধ করুন , যখন একটি পৃথক নামের সাথে আবদ্ধ করুন argv, মডিউলটির ভিতরে থাকা বৈশিষ্ট্যটি সরাসরি নির্দেশ করে (তাই argv-> sys.modules['sys'].argv)। sysমডিউলটির বাকি অংশ এখনও রয়েছে, আপনি মডিউলটি থেকে অন্য কিছু ব্যবহার করেন বা না করেন।
দুটি পদ্ধতির মধ্যে কোনও পারফরম্যান্সের পার্থক্য নেই। হ্যাঁ, sys.argvদুটি জিনিস সন্ধান করতে হবে; এটি sysআপনার গ্লোবাল নেমস্পেসে সন্ধান করতে হবে (মডিউলটি সন্ধান করে), তারপরে বৈশিষ্ট্যটি অনুসন্ধান করবে argv। এবং হ্যাঁ, ব্যবহার করে from sys import argvআপনি গুণাবলীর খোঁজ এড়িয়ে যেতে পারেন, যেহেতু আপনার কাছে ইতিমধ্যে বৈশিষ্ট্যের প্রত্যক্ষ রেফারেন্স রয়েছে। তবে importবিবৃতিটিতে এখনও সেই কাজটি করতে হবে, আমদানির সময় এটি একই বৈশিষ্ট্যটি দেখায় এবং আপনাকে কেবল argv একবার ব্যবহার করতে হবে । যদি আপনাকে argvএকটি লুপে কয়েক হাজার বার ব্যবহার করতে হয় তবে এটি সম্ভবত একটি পার্থক্য তৈরি করতে পারে, তবে এই নির্দিষ্ট ক্ষেত্রে এটি সত্যিই তা করে না।
এক বা অন্যটির মধ্যে তার পরে পছন্দ কোডিং শৈলীর পরিবর্তে হওয়া উচিত ।
একটি বড় মডিউলে, আমি অবশ্যই ব্যবহার করব import sys; কোড ডকুমেন্টেশনের বিষয়টি গুরুত্বপূর্ণ, এবং sys.argvকোনও বৃহত মডিউলটিতে কোথাও ব্যবহার করা আপনি যেটি উল্লেখ করছেন তা তার চেয়ে আরও পরিষ্কার করে argvদেয়।
আপনি যদি কেবলমাত্র কোনও জায়গাটি কোনও ফাংশন কল করার জন্য argvকোনও '__main__'ব্লকের মধ্যে main()রাখেন, from sys import argvযদি আপনি সে সম্পর্কে আরও খুশি হন তবে যে কোনও উপায়ে ব্যবহার করুন :
if __name__ == '__main__':
from sys import argv
main(argv)
আমি এখনও import sysসেখানে নিজেকে ব্যবহার করব। সমস্ত জিনিস সমান (এবং এগুলি হ'ল পারফরম্যান্স এবং এটি লেখার জন্য ব্যবহৃত অক্ষরের সংখ্যা অনুসারে), এটি আমার পক্ষে চোখের উপর সহজ just
আপনি যদি পুরোপুরি অন্য কিছু আমদানি করেন তবে সম্ভবত পারফরম্যান্স প্লে হয়ে আসবে। তবে আপনি উদাহরণস্বরূপ একটি সমালোচনামূলক লুপে মডিউলটিতে বহুবার নির্দিষ্ট নাম ব্যবহার করেন । তবে তারপরে একটি স্থানীয় নাম তৈরি করা (একটি ফাংশনের মধ্যে) এখনও দ্রুত হতে চলেছে:
import somemodule
def somefunction():
localname = somemodule.somefunctionorother
while test:
# huge, critical loop
foo = localname(bar)