import inspect
class Foo(object):
pass
if __name__ == '__main__':
print type(Foo.__init__)
print inspect.getsourcelines(Foo.__init__)
आउटपुट:रैपर_डिस्क्रिप्टर क्या है, और इस मामले में Foo .__ init __() क्यों है?
<type 'wrapper_descriptor'>
Traceback (most recent call last):
*snip*
File "/usr/lib/python2.7/inspect.py", line 420, in getfile
'function, traceback, frame, or code object'.format(object))
TypeError: <slot wrapper '__init__' of 'object' objects> is not a module, class, method, function, traceback, frame, or code object
Googling क्या, वास्तव में, एक wrapper_descriptor है के बारे में बहुत कम उपयोगी जानकारी है, और क्यों एक खाली कक्षा एक __init__
विधि है कि एक विधि नहीं है, बल्कि एक wrapper_descriptor देता है।
यहां वास्तव में क्या चल रहा है? __init__
विधियों के बिना सभी कक्षाएं इन wrapper_descriptor चीजों में से एक है? कक्षा के निर्देश में __init__
क्यों है?
सी एपीआई दस्तावेज इसके अलावा कुछ विवरण बताता है, यदि आप परवाह करते हैं। लेकिन आम तौर पर आप इस तथ्य से परे परवाह नहीं करते हैं कि "स्लॉट रैपर", "विधि-रैपर", और इसी तरह की चीजें हैं जिन्हें आप कॉल कर सकते हैं जैसे कि वे बाध्य तरीके, अनबाउंड विधियां इत्यादि थे, लेकिन कोई पाइथन नहीं है सोर्स कोड। – abarnert