पायथन में सब कुछ ऑब्जेक्ट है
पायथन में कक्षाएं (classes) भी ऑब्जेक्ट हैं, और वे सभी type क्लास के इंस्टेंस हैं। type स्वयं भी type का इंस्टेंस है।
type() फ़ंक्शन
type(obj)— ऑब्जेक्ट का प्रकार (क्लास) लौटाता है।type(name, bases, dict)— डायनामिक रूप से नई क्लास बनाता है।
बुनियादी डेटा प्रकारों की क्लास
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)) #
क्लासों का प्रकार: type
print(type(int)) #print(type(dict)) # print(type(list)) # print(type(type)) # ← type स्वयं type का इंस्टेंस है
विरासत पदानुक्रम (__bases__)
class Animal: pass class Dog(Animal): pass print(Dog.__bases__) # (,) print(Animal.__bases__) # ( ,) print(object.__bases__) # ()
डायनामिक क्लास निर्माण: type(name, bases, dict)
# साधारण क्लास बनाएं
Object1 = type('A', (object,), dict(a='Hello', b=5))
print(type(Object1)) #
print(vars(Object1)) # {'a': 'Hello', 'b': 5, ...}
# विरासत के साथ क्लास बनाएं
class NewClass:
a = 'Good day!'
b = 7
Object2 = type('B', (NewClass,), dict(a='Hello', b=5))
print(vars(Object2)) # {'a': 'Hello', 'b': 5, ...} (NewClass के एट्रिब्यूट्स ओवरराइड)
आउटपुट
{'a': 'Hello', 'b': 5, '__module__': '__main__', '__dict__': ..., '__weakref__': ..., '__doc__': None} {'a': 'Hello', 'b': 5, '__module__': '__main__', '__doc__': None}
उपयोग: मेटाप्रोग्रामिंग, डायनामिक क्लास जनरेशन, फ्रेमवर्क विकास।