string - Static vs instance methods of str in Python -


तो, मैंने सीखा है कि तारों का एक केंद्र तरीका है।

  & gt; & gt; & gt; 'A'.center (3)' a ' 

तब मैंने देखा है कि मैं एक ही चीज़' str 'ऑब्जेक्ट का उपयोग कर कर सकता हूं जो एक प्रकार है, क्योंकि

< > <कोड> & gt पूर्व; & gt; & gt; प्रकार (str) & lt; प्रकार 'प्रकार' & gt;

इस 'प्रकार' ऑब्जेक्ट का उपयोग करके मैं स्ट्रिंग विधियों तक पहुंच सकता हूं जैसे वे स्थिर कार्य थे।

  & gt; & gt; & gt; Str.center ('a', 5) 'a'  

अफसोस! यह अजगर का ज़ेन का उल्लंघन करता है।

एक होना चाहिए - और अधिमानतः केवल एक ही - यह करने का सबसे स्पष्ट तरीका।

यहां तक ​​कि ये दो विधियां अलग हैं।

  & gt; & gt; & gt; प्रकार (str.center) & lt; टाइप 'method_descriptor' & gt; & Gt; & gt; & gt; प्रकार ('नी!' केंद्र) & lt; टाइप 'builtin_function_or_method' & gt;  

अब,

  1. क्या यह उदाहरण है कि कैसे अजगर में कक्षाएं तैयार की जानी चाहिए?
  2. प्रकार क्यों भिन्न हैं? < / Li>
  3. एक विधि_विलेखक क्या है और मुझे परेशान क्यों करना चाहिए?

उत्तर के लिए धन्यवाद!

यह केवल यह है कि पायथन में कक्षाएं कैसे काम करती हैं:

  class C: DEF विधि (आत्म, एजीआर): प्रिंट "में सी। विधि, के साथ ", अरग ओ = सी () ओ। विधि (1) सी। विधि (ओ, 1) # प्रिंट: # सी। विधि में, 1 # में सी। विधि में, 1  

जब आप कहते हैं कि o.method (1) आप इसे C.method (ओ, 1) के लिए एक लघुकोड के रूप में सोच सकते हैं। एक method_descriptor वह काम करता है जो कि मशीनरी का हिस्सा है।


Comments

Popular posts from this blog

c# - ListView onScroll event -

PHP - get image from byte array -

Linux Terminal Problem with Non-Canonical Terminal I/O app -