প্রশ্নের উত্তর হ'ল পাইথনে স্ট্যাডার প্রিন্ট করার বিভিন্ন উপায় রয়েছে তবে এটি 1 এর উপর নির্ভর করে)) আমরা কোন পাইথন সংস্করণটি ব্যবহার করছি ২।
মুদ্রণ এবং স্ট্যাডারের রাইটিং ফাংশনটির মধ্যে পার্থক্য:
স্টডারার : স্টার্ডার (স্ট্যান্ডার্ড ত্রুটি) এমন পাইপ যা প্রতিটি ইউএনআইএক্স / লিনাক্স সিস্টেমের মধ্যে অন্তর্নির্মিত হয়, যখন আপনার প্রোগ্রামটি ক্র্যাশ হয় এবং ডিবাগিং তথ্য মুদ্রণ করে (পাইথনের একটি ট্রেসব্যাকের মতো), এটি স্ট্ডারকে যায় নল।
ছাপা : প্রিন্ট এমন একটি মোড়ক যা ইনপুটগুলিকে বিন্যাস করে (ইনপুটটি আর্গুমেন্ট এবং শেষদিকে নতুন লাইনের মধ্যবর্তী স্থান হয়) এবং পরে এটি একটি প্রদত্ত বস্তুর রাইটিং ফাংশনকে ডাকে, ডিফল্টরূপে প্রদত্ত বস্তুটি সিস্টেস্টডআউট হয়, তবে আমরা পারি একটি ফাইল পাস করুন আমরা একটি ফাইল ইনপুট প্রিন্ট করতে পারেন।
পাইথন 2: যদি আমরা পাইথন 2 ব্যবহার করি
>>> import sys
>>> print "hi"
hi
>>> print("hi")
hi
>>> print >> sys.stderr.write("hi")
hi
পাইথন 2 এর পিছনে থাকা কমাটি পাইথন 3 এ প্যারামিটারে পরিণত হয়েছে, সুতরাং আমরা যদি কোনও মুদ্রণের পরে নতুন লাইন এড়াতে ট্রেলিং কমা ব্যবহার করি তবে এটি পাইথন 3 এ মুদ্রণের মতো দেখাবে ('প্রিন্ট টু প্রিন্ট', শেষ = '') যা পাইথন 2 এর অধীনে একটি সিনট্যাক্স ত্রুটি ।
http://python3porting.com/noconv.html
যদি আমরা পাইথন 3 তে উপরের দৃশ্যগুলিটি পরীক্ষা করি:
>>> import sys
>>> print("hi")
hi
পাইথন ২.6 এর অধীনে কোনও ফাংশনে মুদ্রণ করতে ভবিষ্যতের আমদানি রয়েছে। সুতরাং কোনও সিনট্যাক্স ত্রুটি এবং অন্যান্য পার্থক্য এড়াতে আমাদের ভবিষ্যতের আমদানি মুদ্রণ_ফাংশন সহ যে কোনও ফাইল যেখানে মুদ্রণ () ব্যবহার করা উচিত তা শুরু করা উচিত । ভবিষ্যতে আমদানি শুধুমাত্র পাইথন 2.6 অধীনে কাজ করে এবং পরে, পাইথন 2.5 জন্য তাই এবং তার আগে আপনার কাছে দুটি বিকল্প আছে। আপনি হয় আরও জটিল মুদ্রণটিকে সহজ কিছুতে রূপান্তর করতে পারেন, বা আপনি পৃথক মুদ্রণ ফাংশন ব্যবহার করতে পারেন যা পাইথন 2 এবং পাইথন 3 উভয়ের অধীনে কাজ করে।
>>> from __future__ import print_function
>>>
>>> def printex(*args, **kwargs):
... print(*args, file=sys.stderr, **kwargs)
...
>>> printex("hii")
hii
>>>
কেস: sys.stderr.writ () বা sys.stdout.write () (স্টাডআউট (স্ট্যান্ডার্ড আউটপুট) একটি পাইপ যা প্রতিটি ইউনিক্স / লিনাক্স সিস্টেমের মধ্যে নির্মিত) মুদ্রণের জন্য প্রতিস্থাপন নয়, তবে হ্যাঁ আমরা এটি কোনও ক্ষেত্রে বিকল্প হিসাবে ব্যবহার করতে পারি। প্রিন্ট একটি মোড়ক যা শেষে এবং নতুন লাইনের সাথে ইনপুটটি মোড় করে এবং লেখার জন্য রচনা ফাংশনটি ব্যবহার করে। এই কারণেই sys.stderr.writ () দ্রুত হয়।
দ্রষ্টব্য: আমরা লগিং ব্যবহার করে ট্রেস এবং ডিবাগ করতে পারি
#test.py
import logging
logging.info('This is the existing protocol.')
FORMAT = "%(asctime)-15s %(clientip)s %(user)-8s %(message)s"
logging.basicConfig(format=FORMAT)
d = {'clientip': '192.168.0.1', 'user': 'fbloggs'}
logging.warning("Protocol problem: %s", "connection reset", extra=d)
https://docs.python.org/2/library/logging.html#logger-objects