पाइथन मॉड्यूल को __call__
क्यों नहीं देता है? (स्पष्ट है कि यह सीधे आयात करना आसान नहीं होगा।) विशेष रूप से, a(b)
सिंटैक्स का उपयोग क्यों नहीं करता है __call__
विशेषताएँ जैसे कार्यों, वर्गों और वस्तुओं के लिए करता है? (देखने सिर्फ मॉड्यूल के लिए incompatibly अलग है?)कॉल करने योग्य मॉड्यूल
>>> print open("mod_call.py").read()
def __call__():
return 42
>>> import mod_call
>>> mod_call()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'module' object is not callable
>>> mod_call.__call__()
42
एक पैकेजर से अपने स्वयं के उप-मॉड्यूल में एक सजावटी को माइग्रेट करना। @example (...) अब तक का सबसे आम उपयोग-मामला था, लेकिन @ example.special_case (...) एक नया उपयोग था। मैं इसे एक उदाहरण वर्ग और स्थैतिक तरीकों से लागू नहीं करना चाहता था, क्योंकि यह एक खराब फिट था। सुनिश्चित नहीं है कि एक कॉल करने योग्य मॉड्यूल बेहतर फिट है, लेकिन मैंने इसकी जांच शुरू कर दी और फिर जानना चाहता था कि यह क्यों काम नहीं कर रहा था। –
मैंने यह भी सोचा था कि यह मॉड्यूल बनाकर डेटाटाइम और दशमलव जैसे कुछ मॉड्यूल को सरल बना सकता है .__ call__ क्रमशः डेटाटाइम या दशमलव हो। क्रमशः दशमलव। हालांकि, फिर टाइप करें (दशमलव ('1')) दशमलव के समान नहीं होगा, और संभव अन्य समस्याएं। * शग * यह एक विचार था। –
"स्पष्ट है कि सीधे आयात करना आसान नहीं होगा।" आप ऐसा क्यों सोचते हैं? –