pluses:
প্রথম: হালকা, পরাজিতযোগ্য অবসন্নতা।
দ্বিতীয়: সংকলনটি যদি একটি উল্লেখযোগ্যভাবে ছোট ফাইলের ফলাফল দেয় তবে আপনি দ্রুত লোড বার পাবেন। ওয়েবের জন্য দুর্দান্ত।
তৃতীয়: পাইথন সংকলনের পদক্ষেপটি এড়িয়ে যেতে পারে। অন্তর্নিহিত লোডে আরও দ্রুত। সিপিইউ এবং ওয়েবের জন্য দুর্দান্ত।
চতুর্থ: আপনি যত বেশি মন্তব্য করবেন, উত্স ফাইলের তুলনায় তুলনামূলকভাবে কম .pycবা .pyoফাইলটি হবে .py।
পঞ্চম: কেবলমাত্র একটি ফাইল .pycবা .pyoহাতে ফাইল হাতে থাকা কোনও ব্যবহারকারী আপনাকে কোনও বাগ-পাল্টানো পরিবর্তনের কারণে যে বাগটি বলেছিল তা আপনাকে জানাতে ভুলে গেছে এমন একটি বাগের সাথে আপনি উপস্থিত হতে পারে to
ষষ্ঠ: আপনি যদি এমবেডেড সিস্টেমের দিকে লক্ষ্য রাখছেন তবে এম্বেড করার জন্য একটি ছোট আকারের ফাইল প্রাপ্তি একটি উল্লেখযোগ্য প্লাসের প্রতিনিধিত্ব করতে পারে, এবং আর্কিটেকচার স্থিতিশীল তাই নিম্নে বর্ণিত একটি অপূর্ণতা কার্যকর হয় না।
শীর্ষ স্তরের সংকলন
এটি আপনি একটি শীর্ষ স্তরের পাইথন উত্স ফাইলটি একটি .pycফাইলের মধ্যে এইভাবে সংকলন করতে পারেন তা জেনে রাখা কার্যকর :
python -m py_compile myscript.py
এটি মন্তব্যগুলি সরিয়ে দেয়। এটি docstringsঅক্ষত থাকে। আপনি যদি এ docstringsথেকেও মুক্তি পেতে চান (আপনি কেন করছেন তা নিয়ে আপনি গুরুত্ব সহকারে ভাবতে চাইতে পারেন) তবে পরিবর্তে এইভাবে সংকলন করুন ...
python -OO -m py_compile myscript.py
... এবং আপনি একটি .pyoফাইলের পরিবর্তে একটি .pycফাইল পাবেন; কোডটির প্রয়োজনীয় কার্যকারিতার দিক থেকে সমানভাবে বিতরণযোগ্য, তবে স্ট্রিপ আউট-এর আকার অনুসারে ছোট docstrings(এবং পরবর্তী কর্মসংস্থানের জন্য এটি যদি docstringsপ্রথম স্থানে শালীন থাকে তবে সহজেই সহজে বোঝা যায় )। তবে ত্রুটিটি তিনটি, নীচে দেখুন।
দ্রষ্টব্য যে পাইথন .pyফাইলের তারিখ ব্যবহার করে , যদি তা উপস্থিত থাকে তবে সিদ্ধান্ত নিতে যে এটি .pyফাইলটি .pycবা .pyoফাইলের বিপরীতে চালানো উচিত --- সুতরাং আপনার .py ফাইলটি সম্পাদনা করুন এবং .pycবা .pyoঅপ্রচলিত এবং আপনার যে কোনও উপকারিতা হারিয়ে গেছে তা নষ্ট হয়ে গেছে। আবার .pycবা .pyoসুবিধাগুলি পুনরায় ফিরে পেতে আপনার এটিকে পুনরায় সংকলন করতে হবে যেমন যেমন তারা।
অপূর্ণতা:
প্রথম: একটি "ম্যাজিক কুকি" আছে .pycএবং .pyoফাইলগুলি সিস্টেম আর্কিটেকচারকে ইঙ্গিত করে যে পাইথন ফাইলটি সংকলিত হয়েছিল you আপনি যদি এই ফাইলগুলির মধ্যে একটি অন্যরকম পরিবেশে বিতরণ করেন তবে এটি ভেঙে যাবে। আপনি বিতরণ তাহলে .pycবা .pyoযুক্ত থাকলে .pyপুনরায় কম্পাইল করতে বা touchতাই এটি supersedes .pycবা .pyo, শেষ ব্যবহারকারী এটা ঠিক করতে পারে না, পারেন।
দ্বিতীয়: যদি উপরে বর্ণিত কমান্ড লাইন বিকল্পটি docstringsব্যবহার -OOনা করা হয় তবে কেউ সেই তথ্যটি পেতে সক্ষম হবেনা, যা কোডটি ব্যবহারকে আরও কঠিন (বা অসম্ভব) করতে পারে)
তৃতীয়: পাইথনের -OOবিকল্পটি -Oকমান্ড লাইন বিকল্প অনুযায়ী কিছু অপ্টিমাইজেশন প্রয়োগ করে ; এটি অপারেশন পরিবর্তন হতে পারে। পরিচিত অপ্টিমাইজেশনগুলি হ'ল:
sys.flags.optimize = 1
assert বিবৃতি এড়ানো হয়
__debug__ = মিথ্যা
চতুর্থ: আপনি ইচ্ছাকৃতভাবে ক্রম কিছু সঙ্গে আপনার পাইথন স্ক্রিপ্ট এক্সিকিউটেবল করেছিল #!/usr/bin/pythonপ্রথম লাইন, এই আউট ছিনতাই হয় .pycএবং .pyoফাইল ও যে কার্যকারিতা হারিয়ে গেছে।
পঞ্চম: কিছুটা সুস্পষ্ট, তবে আপনি যদি আপনার কোডটি সংকলন করেন তবে এটির ব্যবহারের উপরই কেবল প্রভাব পড়তে পারে না, তবে অন্যদের দ্বারা আপনার কাজ থেকে শেখার সম্ভাবনা প্রায়শই মারাত্মকভাবে হ্রাস পায়।