2013-03-20 9 views
55

पायथन में आप कक्षा कैसे बढ़ा सकते हैं? उदाहरण अगर मेरे पास है के लिएपायथन में कक्षा का विस्तार कैसे करें?

color.py

class Color: 
    def __init__(self, color): 
     self.color = color 
    def getcolor(self): 
     return self.color 

color_extended.py

import Color 

class Color: 
    def getcolor(self): 
     return self.color + " extended!" 

लेकिन यह काम नहीं करता ... मैं उम्मीद है कि अगर मैं color_extended.py में काम करते हैं, तो जब मैं एक रंग ऑब्जेक्ट बनाता हूं और getcolor फ़ंक्शन का उपयोग करता हूं तो यह ऑब्जेक्ट को "विस्तारित" स्ट्रिंग के साथ वापस कर देगा। अंततः। इसके अलावा इसे आयात से गेटटन मिलना चाहिए।

अजगर मान लें 3.1

धन्यवाद

+1

क्या आपने प्रलेखन पढ़ने की कोशिश की? http://docs.python.org/2.7/tutorial/classes.html#inheritance – wRAR

+0

कक्षाओं में पहला अक्षर पूंजीकृत होना चाहिए ("रंग" नहीं "रंग");) – daveoncode

+3

@wRAR शायद 2013 में यह एक उचित सवाल है, लेकिन आइए ईमानदार रहें - लोग पहले स्टैक ओवरफ्लो पर जाते हैं, इसलिए एसओ पर यह एक अच्छा सवाल है। यह प्रश्न "पायथन विस्तार वर्ग" के लिए पहला Google हिट है, दस्तावेज तीसरा है। –

उत्तर

58

उपयोग:

:

import color 

class Color(color.Color): 
    ... 

यदि यह अजगर 2.x थे, तो आप भी object से color.Color प्राप्त करने के लिए, यह एक new-style class बनाना चाहते हैं

class Color(object): 
    ... 

यह है पायथन 3.x में आवश्यक नहीं है

+22

यह ध्यान देने योग्य है कि आप नई कक्षा को पुराने नाम के समान नाम दे सकते हैं: 'वर्ग रंग (रंग): 'एक नई कक्षा को परिभाषित करता है जो पुराने को बदल देता है, लेकिन जो इससे प्राप्त होता है। (ऐसा लगता है कि ओपी क्या करने की कोशिश कर रहा है।) – kindall

+11

'वर्ग विस्तारित_color (रंग): 'खराब मानकों आमतौर पर -' कक्षा विस्तारित रंग (रंग): 'कक्षाओं के लिए होना चाहिए। बस एक नाइटपिक – TyrantWave

संबंधित मुद्दे