কম্পিউটার

ইন্টারেক্টিভ পাইথন উদাহরণ পরীক্ষা করুন (ডক্টেস্ট)


পাইথনের স্ট্যান্ডার্ড ডিস্ট্রিবিউশনে 'ডকটেস্ট' মডিউল রয়েছে। এই মডিউলটির কার্যকারিতা ইন্টারেক্টিভ পাইথন সেশনের মতো দেখতে পাঠ্যের টুকরোগুলি অনুসন্ধান করা সম্ভব করে এবং সেগুলি দেখানোর মতো ঠিক কাজ করে কিনা তা দেখতে এই সেশনগুলি কার্যকর করে৷ এই উদাহরণগুলি ক্লাস, মডিউল বা ফাংশনের ডকস্ট্রিং এক্সপ্রেশন থেকে নেওয়া হয়েছে। ডক্টেস্টগুলি একটি সহগামী টেক্সট ফাইল থেকে একটি টেক্সট ফাইল থেকেও চালানো যেতে পারে।

পাইথনে, একটি 'ডকস্ট্রিং' হল একটি স্ট্রিং আক্ষরিক যা একটি ক্লাস, ফাংশন বা মডিউলের প্রথম অভিব্যক্তি হিসাবে উপস্থিত হয়। যখন স্যুটটি কার্যকর করা হয় তখন এটি উপেক্ষা করা হয়, কিন্তু এটি কম্পাইলার দ্বারা স্বীকৃত হয় এবং এনক্লোসিং ক্লাস, ফাংশন বা মডিউলের __doc__ অ্যাট্রিবিউটে রাখা হয়।

ডকস্ট্রিংগুলি সাধারণত পাইথন কোডের বিভিন্ন অংশের উদাহরণ ব্যবহার বর্ণনা করার জন্য রাখা হয়। ডক্টেস্ট মডিউলটি যাচাই করার অনুমতি দেয় যে এই ডকস্ট্রিংগুলি কোডের অন্তর্বর্তী সংশোধনগুলির সাথে আপ-টু-ডেট।

নিম্নলিখিত কোডে, একটি ফ্যাক্টরিয়াল ফাংশন উদাহরণ ব্যবহারের সাথে ছেদ করে সংজ্ঞায়িত করা হয়েছে। উদাহরণের ব্যবহার সঠিক কিনা তা যাচাই করার জন্য, ডক্টেস্ট মডিউলে testmod() ফাংশনটি কল করুন৷

def add(a,b):
'''
>>> add(10,20)
30
>>> add('aaa','bbb')
'aaabbb'
>>> add('aaa',20)
Traceback (most recent call last):
...
TypeError: must be str, not int
'''
return a+b
নয়

প্রথমে লিখুন এবং উপরের স্ক্রিপ্টটি mytest.py হিসাবে সংরক্ষণ করুন এবং কমান্ড লাইন থেকে এই স্ক্রিপ্টটি কার্যকর করার চেষ্টা করুন৷

Python mytest.py

উদাহরণ ব্যর্থ না হলে কোন আউটপুট দেখানো হবে না। এখন কমান্ড লাইন পরিবর্তন করুন

Python mytest.py –v

এখন কনসোল নিম্নলিখিত ফলাফল দেখাবে −

F:\Python36>python mytest.py -v
Trying:
add(10,20)
Expecting:
30
ok
Trying:
add('aaa','bbb')
Expecting:
'aaabbb'
ok
Trying:
add('aaa',20)
Expecting:
Traceback (most recent call last):
...
TypeError: must be str, not int
ok
1 items had no tests:
__main__
1 items passed all tests:
3 tests in __main__.add
3 tests in 2 items.
3 passed and 0 failed.
Test passed.

একটি পাঠ্য ফাইলে উদাহরণ পরীক্ষা করা হচ্ছে

ডক্টেস্টের আরেকটি সহজ প্রয়োগ হল একটি টেক্সট ফাইলে ইন্টারেক্টিভ উদাহরণ পরীক্ষা করা। এটা testfile() ফাংশন দিয়ে করা যেতে পারে।

নিম্নলিখিত পাঠ্য 'example.txt'

নামে একটি পাঠ্য ফাইলে সংরক্ষণ করা হয়
Using ''add''
-------------------
This is an example text file . First import
''add'' from the ''mytest'' module:
>>> from mytest import add
>>> add(10,20)
30

ফাইলের বিষয়বস্তুকে ডকস্ট্রিং হিসাবে বিবেচনা করা হয়৷ টেক্সট ফাইলের উদাহরণগুলি যাচাই করার জন্য ডক্টেস্ট মডিউলের testfile() ফাংশন ব্যবহার করুন।

def add(a,b):
return a+b
if __name__ == "__main__":
import doctest
doctest.testfile("example.txt")
  • যেমন testmod(), testfile() কোনো উদাহরণ ব্যর্থ না হলে কিছুই প্রদর্শন করবে না। যদি একটি উদাহরণ ব্যর্থ হয়, তাহলে ব্যর্থ উদাহরণ(গুলি) এবং ব্যর্থতার(গুলি) কারণ(গুলি) কনসোলে প্রিন্ট করা হয়, testmod() এর মতো একই ফর্ম্যাট ব্যবহার করে৷

  • বেশিরভাগ ক্ষেত্রে একটি ইন্টারেক্টিভ কনসোল সেশনের একটি কপি-এবং-পেস্ট ভাল কাজ করে, কিন্তু ডক্টেস্ট কোনো নির্দিষ্ট পাইথন শেলটির সঠিক অনুকরণ করার চেষ্টা করছে না।

  • যেকোন প্রত্যাশিত আউটপুটকে অবিলম্বে চূড়ান্ত '>>>' বা '...' লাইন অনুসরণ করতে হবে যেখানে কোড রয়েছে এবং প্রত্যাশিত আউটপুট (যদি থাকে) পরবর্তী '>>>' বা অল-হোয়াইটস্পেস লাইন পর্যন্ত প্রসারিত হয়।

  • প্রত্যাশিত আউটপুটে একটি অল-হোয়াইটস্পেস লাইন থাকতে পারে না, যেহেতু এই ধরনের একটি লাইন প্রত্যাশিত আউটপুটের শেষের সংকেত দেওয়ার জন্য নেওয়া হয়। যদি প্রত্যাশিত আউটপুটে একটি ফাঁকা লাইন থাকে, তাহলে আপনার সঠিক উদাহরণে রাখুন প্রতিটি জায়গায় একটি ফাঁকা লাইন প্রত্যাশিত।

এই নিবন্ধে testmod() এবং testfile() ফাংশন doctest মডিউলে আলোচনা করা হয়েছে।


  1. পাইথন - কিভি উইন্ডোতে লেবেল যোগ করুন

  2. পাইথনে এক যোগ করুন

  3. Python tkinter বোতামে স্টাইল যোগ করুন

  4. কিভাবে পাইথনে পাথ যোগ করবেন?