Python डेवलपर इंटरव्यू सवाल

dunder methods क्या हैं और वे data model में कहां बैठते हैं?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

dunder methods वे खास methods हैं जिनके नाम के दोनों तरफ दो underscore होते हैं और Python का सिंटैक्स उन्हीं पर जाता है। किसी ऑब्जेक्ट पर len कॉल करने से dunder len चलता है, plus operator से dunder add, और for लूप से dunder iter। इन्हें लागू करने पर आपकी class किसी built in type जैसी बर्ताव करती है, यानी भाषा के protocols आपके ऑब्जेक्ट पर काम करते हैं और आपको अपने नाम गढ़ने नहीं पड़ते।

इंटरव्यूअर यह क्यों पूछते हैं

यह Python लिखने वालों को उन लोगों से अलग करता है जो Python के सिंटैक्स में कोई और भाषा लिखते हैं। इंटरव्यूअर protocol वाला विचार सुनना चाहता है: CPython में duck typing इन्हीं hooks से बनती है, और सही आदत यह है कि protocol लागू करें, to_string नाम की कोई method चिपकाएं नहीं। कौन सा dunder चुनना है, जैसे repr बनाम str, यह जानना रोजमर्रा की सहजता दिखाता है।

अपना जवाब कैसे स्ट्रक्चर करें

  • इन्हें ऐसे hooks बताएं जिन्हें सिंटैक्स कॉल करता है।
  • दो तीन ठोस उदाहरण जोड़ें।
  • इनके पीछे protocol वाला विचार समझाएं।
  • बताएं कि आप कौन से सबसे ज्यादा लागू करते हैं।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

ये वे hooks हैं जिन्हें इंटरप्रेटर तब कॉल करता है जब आप सिंटैक्स इस्तेमाल करते हैं। square bracket access dunder getitem पर जाता है, in कीवर्ड dunder contains पर, equality dunder eq पर, वगैरह। बात यह है कि Python व्यवहार को protocols की तरह परिभाषित करता है, ऐसे interfaces की तरह नहीं जिन्हें inherit करना पड़े, तो अगर मेरा ऑब्जेक्ट dunder iter और dunder next लागू करता है तो वह iterator है, बस, किसी base class की जरूरत नहीं। व्यवहार में मैं सबसे ज्यादा repr, eq और hash लागू करता हूं। खासकर repr, क्योंकि पहचान वाले fields दिखाने वाला अच्छा repr एक बेकार डीबगिंग सेशन को पांच मिनट का बना देता है, जबकि डिफॉल्ट object at 0x7f वाला प्रिंट कुछ नहीं बताता। eq और hash के साथ मैं सावधान रहता हूं, क्योंकि hash के बिना eq परिभाषित करने से instances unhashable हो जाते हैं और चुपचाप dict keys की तरह काम करना बंद कर देते हैं। एक domain model में dunder lt जोड़ने से हम हर जगह key function भेजने के बजाय built in sorted से records सॉर्ट कर पाए।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • repr और str में क्या फर्क है?
  • eq और hash का आपस में मेल क्यों जरूरी है?
  • dunder getattr, getattribute से कैसे अलग है?

Python डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं