কম্পিউটার

পাইথন স্টেটমেন্ট এক্সিকিউশন ট্রেস বা ট্র্যাক করুন (ট্রেস)


পাইথন লাইব্রেরির 'ট্রেস' মডিউলের ফাংশন প্রোগ্রাম এক্সিকিউশনের ট্রেস এবং টীকাযুক্ত স্টেটমেন্ট কভারেজ তৈরি করে। এটিতে কলার সম্পর্ক তৈরি করে চালানোর সময় কল করা ফাংশনগুলি তালিকাভুক্ত করার ফাংশন রয়েছে৷

নিম্নলিখিত দুটি পাইথন স্ক্রিপ্ট ট্রেস মডিউলের বৈশিষ্ট্যগুলি প্রদর্শনের জন্য একটি উদাহরণ হিসাবে ব্যবহার করা হয়৷

#myfunctions.pyimport mathdef এলাকা(x):a =math.pi*math.pow(x,2) রিটার্ন adef ফ্যাক্টোরিয়াল(x):যদি x==1:রিটার্ন 1 else:রিটার্ন x*ফ্যাক্টোরিয়াল(x) -1)
#mymain.pyimport myfunctionsdef main():x =5 প্রিন্ট ('area=',myfunctions.area(x)) প্রিন্ট ('factorial=',myfunctions.factorial(x)) if __name__=='__main__' :main()

'ট্রেস' মডিউলটির একটি কমান্ড লাইন ইন্টারফেস রয়েছে। মডিউলের সমস্ত ফাংশন কমান্ড লাইন সুইচ ব্যবহার করে কল করা যেতে পারে। সবচেয়ে গুরুত্বপূর্ণ বিকল্প হল --trace যা চালানোর সাথে সাথে প্রোগ্রাম লাইনগুলি প্রদর্শন করে। নিম্নলিখিত উদাহরণে আরেকটি বিকল্প --ignore-dir ব্যবহৃত হয়. এটি ট্রেস তৈরি করার সময় নির্দিষ্ট ডিরেক্টরিগুলিকে উপেক্ষা করে৷

E:\python37>python -m ট্রেস --ignore-dir=../lib --trace mymain.py

আউটপুট

mymain.py(2):def main():mymain.py(7):if __name__=='__main__':mymain.py(8):main()--- modulename:mymain, funcname:mainmymain .py(3):x=5mymain.py(4):প্রিন্ট ('area=',myfunctions.area(x))--- মডিউলের নাম:myfunctions, funcname:areamyfunctions.py(3):a=math.pi *math.pow(x,2)myfunctions.py(4):রিটার্ন aarea=78.53981633974483mymain.py(5):প্রিন্ট ('factorial=',myfunctions.factorial(x))--- মডিউলের নাম:myfunctions, funcname:factorialmyfunctions.py(6):if x==1:myfunctions.py(9):রিটার্ন x*factorial(x-1)--- মডিউলের নাম:myfunctions, funcname:factorialmyfunctions.py(6):if x==1 :myfunctions.py(9):রিটার্ন x*factorial(x-1)--- মডিউলের নাম:myfunctions, funcname:factorialmyfunctions.py(6):যদি x==1:myfunctions.py(9):রিটার্ন x*ফ্যাক্টোরিয়াল (x-1)--- মডিউলের নাম:myfunctions, funcname:factorialmyfunctions.py(6):if x==1:myfunctions.py(9):রিটার্ন x*factorial(x-1)--- মডিউলের নাম:myfunctions, ফাংশনের নাম:factorialmyfunctions.py(6):if x==1:myfunctions.py(7):রিটার্ন 1factorial=120

--count বিকল্পটি কভার এক্সটেনশনের সাথে ব্যবহৃত প্রতিটি মডিউলের জন্য একটি ফাইল তৈরি করে।

E:\python37>python -m ট্রেস --count mymain.pyarea=78.53981633974483factorial =120

myfunctions.cover

1:import math1:def area(x):1:a =math.pi*math.pow(x,2)1:রিটার্ন a1:def ফ্যাক্টোরিয়াল(x):5:if x==1:1 :রিটার্ন 1 else:4:রিটার্ন x*ফ্যাক্টোরিয়াল(x-1)

mymain.cover

1:import myfunctions1:def main():1:x =51:print ('area=',myfunctions.area(x))1:print ('factorial=',myfunctions.factorial(x))1 :যদি __name__=='__main__':1:main()

--সারাংশ যদি –count বিকল্পটিও ব্যবহার করা হয় তাহলে বিকল্প একটি সংক্ষিপ্ত সারাংশ প্রদর্শন করে।

E:\python37>python -m ট্রেস --count --summary mymain.pyarea =78.53981633974483factorial =120lines cov% মডিউল (পাথ) 8 100% myfunctions (E:\python37\myfunctions%0)myfunctions. (mymain.py)

--ফাইল বিকল্পটি ফাইলের নাম উল্লেখ করে যেখানে একাধিক ট্রেসিং রানের উপর গণনা জমা হয়।

E:\python37>python -m trace --count --file report.txt mymain.pyarea =78.53981633974483factorial =120 Skipping counts file 'report.txt':[Errno 2] এরকম কোনো ফাইল বা ডিরেক্টরি নেই:'report। txt'E:\python37>python -m trace --count --file report.txt mymain.pyarea=78.53981633974483factorial=120

--listfuncs অপশন প্রোগ্রাম চালানোর সময় কল ফাংশন প্রদর্শন করে।

E:\python37>python -m ট্রেস --listfunc mymain.py | findstr -v importlibarea=78.53981633974483factorial=120 ফাংশন যাকে বলা হয়:ফাইলের নাম:E:\python37\lib\encodings\cp1252.py, মডিউলের নাম:cp1252, ফাংশনের নাম:ইনক্রিমেন্টাল কোড\ফিনকশন 3, ফাংশন নাম:ইকোডের নাম:ইঙ্কোডাউন, ইকোডের নাম, ইকোডের নাম। :filename:E:\python37\myfunctions.py, মডিউলের নাম:myfunctions, funcname:areafilename:E:\python37\myfunctions.py, মডিউলের নাম:myfunctions, funcname:factorialfilename:mymain.py, modulec, funname:mymain ফাইলের নাম:mymain.py, মডিউলের নাম:mymain, funcname:main

--ট্র্যাককল -লিস্ট ফাঙ্কস বিকল্পের সাথে বিকল্পটি ব্যবহার করা হয়। এটি কলিং সম্পর্ক তৈরি করে।

E:\python37>python -m trace --listfunc --trackcalls mymain.py | findstr -v importlibarea=78.53981633974483factorial=120কলিং সম্পর্ক:-> E:\python37\myfunctions.py*** E:\python37\lib\trace.py ***--> mymain.pytrace.Trace.runctx -> mymain.*** E:\python37\myfunctions.py ***myfunctions.factorial -> myfunctions.factorial** mymain.py ***mymain. -> mymain.main--> E :\python37\lib\encodings\cp1252.pymymain.main -> cp1252.IncrementalEncoder.encode--> E:\python37\myfunctions.pymymain.main -> myfunctions.areamymain.main -> myfunctions. 
  1. বিবৃতি যদি পাইথনের সঠিক সিনট্যাক্স কি?

  2. আমি কিভাবে একটি পাইথন প্রোগ্রামের কার্যকর করার সময় পেতে পারি?

  3. পাইথন ব্যবহার করে স্ক্রিনে কীভাবে প্রিন্ট করবেন?

  4. পাইথনে অ্যাসার্ট স্টেটমেন্টের ব্যবহার কী?