পাইথনের সবকিছু ক্লাস সহ একটি বস্তু। সমস্ত ক্লাস হল "টাইপ" নামক একটি ক্লাসের উদাহরণ। টাইপ অবজেক্টটিও টাইপ ক্লাসের একটি উদাহরণ। আপনি ক্লাস অবজেক্টের __bases__ বৈশিষ্ট্য পরীক্ষা করে ক্লাসের উত্তরাধিকার অনুক্রম পরিদর্শন করতে পারেন। type() মেথড প্যারামিটার হিসেবে পাস করা আর্গুমেন্ট (অবজেক্ট) এর ক্লাস টাইপ রিটার্ন করে। যদি একক আর্গুমেন্ট টাইপ(অবজেক্ট) টাইপ মেথডে পাস করা হয়, তাহলে এটি প্রদত্ত অবজেক্টের ধরন প্রদান করে। যদি তিনটি আর্গুমেন্ট টাইপ (নাম, বেস, ডিক্ট) পাস করা হয়, এটি একটি নতুন ধরনের অবজেক্ট প্রদান করে।
টাইপ() ব্যবহার করা
সবচেয়ে বেশি ব্যবহৃত ডাটা টাইপের ক্লাসগুলো দেখি। নিচের প্রোগ্রামে আমরা কিছু ভেরিয়েবল শুরু করি এবং তারপর তাদের ক্লাস নিশ্চিত করতে type() ব্যবহার করি।
উদাহরণ
# Some variables a = 5 b = 5.2 c = 'hello' A = [1,4,7] B = {'k1':'Sun','K2':"Mon",'K3':'Tue'} C = ('Sky','Blue','Vast') print(type(a)) print(type(b)) print(type(c)) print(type(A)) print(type(B)) print(type(C))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
<class 'int'> <class 'float'> <class 'str'> <class 'list'> <class 'dict'> <class 'tuple'>
ক্লাসের ধরন
যদি আমরা উপরের ক্লাসের ধরনটি দেখতে আরও গভীরে যাই, তাহলে আমরা দেখতে পাব যে তারা সবই 'টাইপ' নামের ক্লাসের অন্তর্গত।
উদাহরণ
print(type(int)) print(type(dict)) print(type(list)) print(type(type))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
<class 'type'> <class 'type'> <class 'type'> <class 'type'>
একটি নতুন অবজেক্ট টাইপ তৈরি করা হচ্ছে
আমরা নতুন অবজেক্ট তৈরি করতে উপরের মত একই পদ্ধতি ব্যবহার করতে পারি। এখানে আমরা নতুন ধরনের অবজেক্ট তৈরি করতে তিনটি প্যারামিটার পাস করি।
উদাহরণ
Object1 = type('A', (object,), dict(a='Hello', b=5)) print(type(Object1)) print(vars(Object1)) class NewCalss: a = 'Good day!' b = 7 Object2 = type('B', (NewCalss,), dict(a='Hello', b=5)) print(type(Object2)) print(vars(Object2))
আউটপুট
উপরের কোডটি চালানো আমাদের নিম্নলিখিত ফলাফল দেয় -
<class 'type'> {'a': 'Hello', 'b': 5, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None} <class 'type'> {'a': 'Hello', 'b': 5, '__module__': '__main__', '__doc__': None}