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

NamedTuple या Pydantic model की जगह dataclass आप कब चुनेंगे?

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

छोटा जवाब

अंदरूनी mutable स्ट्रक्चर के लिए dataclass लें, जहां आपको सामान्य attributes और मुफ्त में init, repr और eq चाहिए। जब आपको immutable, tuple जैसा record चाहिए जो सस्ते में unpack और hash हो, तब NamedTuple लें। Pydantic सिस्टम की सीमाओं पर लें, जहां HTTP, config files या queues से आते डेटा की runtime validation, coercion और serialization चाहिए।

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

आधुनिक Python में record घोषित करने के चार पांच तरीके हैं, और इंटरव्यूअर जानना चाहता है कि आप सोच समझकर चुनते हैं, वह नहीं उठा लेते जो पिछली बार इस्तेमाल किया था। जो बात वे सुनना चाहते हैं वह यह है कि dataclass पर लगे type hints runtime पर लागू नहीं होते, इसलिए validation ठीक वही चीज है जो Pydantic देता है, और हर अंदरूनी ऑब्जेक्ट पर validation की कीमत चुकाना बेकार का काम है।

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

  • तीनों को इस आधार पर बांटें कि डेटा कहां से आ रहा है।
  • कहें कि dataclass के hints runtime पर लागू नहीं होते।
  • NamedTuple के लिए immutability और hashing वाला पहलू दें।
  • अपना डिफॉल्ट और सीमा वाला नियम बताएं।

उदाहरण जवाब

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

मेरा नियम है कि Pydantic किनारों की पहरेदारी करता है और dataclasses अंदर रहते हैं। सीमा पार करती हर चीज, request body, environment config, queue से आया message, उसे Pydantic model मिलता है क्योंकि मैं चाहता हूं कि आते ही एक बार, खुलकर, validate और coerce हो जाए। उसके आगे सब कुछ slots चालू किए हुए सादा dataclass हो सकता है, क्योंकि मुझे पता है डेटा सही है और लूप में बनने वाले हर ऑब्जेक्ट पर validation की कीमत नहीं देनी। जो बात लोग चूक जाते हैं वह यह है कि dataclass के field को int लिखने से runtime पर कुछ नहीं होता, तो string भेजिए और वह खुशी खुशी string रख लेगा। NamedTuple मैं कम इस्तेमाल करता हूं, मुख्य रूप से छोटे immutable records के लिए जिन्हें dict keys बनना हो या unpack होना हो, जैसे coordinate pair या cache key। जिस सर्विस पर मैंने काम किया, वहां एक अंदरूनी hot path को Pydantic models से slotted dataclasses पर लाने से batch job का समय साफ तौर पर घटा, सिर्फ इसलिए कि पहले से जांचे हुए डेटा की दोबारा validation छूट गई।

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

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

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

  • dataclass पर slots equals True क्या करता है?
  • dataclass को immutable कैसे बनाते हैं?
  • Pydantic v1 और v2 के बीच क्या बदला?

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

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

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

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

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

GhostPilot पाएं