2013-03-20 13 views
55

Python'da bir sınıfı nasıl genişletebilirsiniz? Ben varsa, örneğinPython'da bir sınıfı nasıl genişletebilirim?

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!" 

Ama bu ... Ben o zaman ne zaman, color_extended.py çalışıyorsanız bekliyoruz çalışmıyor Ben bir renk nesnesi yapmak ve getcolor işlevini kullanın, sonra nesne "genişletilmiş" dizesi ile döndürecektir. sonunda. Ayrıca ithalattan init olmalı.

Python 3.1

Teşekkür

+1

sen belgeleri okumak çalıştın mı? http://docs.python.org/2.7/tutorial/classes.html#inheritance – wRAR

+0

sınıflarının ilk harfi büyük harfle yazılmalıdır ("Renk" değil "renk");) – daveoncode

+3

@wRAR Belki 2013'te bu makul bir sorudur, ancak dürüst olalım - insanlar önce StackOverflow'a dönüyorlar, bu yüzden SO üzerinde sahip olmak için iyi bir soru. Bu soru "python extend class" için ilk google isabeti, dokümantasyon üçüncü. –

cevap

58

Kullanım varsayalım:

: Bu Python 2.x olsaydı, siz de bunu bir new-style class yapmak, object den color.Color türetmek isteyeyim

import color 

class Color(color.Color): 
    ... 

class Color(object): 
    ... 

Bu Python 3.x'te gerekli değildir.

+22

Sanki eski bir yeni sınıf aynı adı verebilir dikkati çekiyor: 'sınıf renk (renk):' eskisinin yerini yeni bir sınıf tanımlar fakat ondan türediği. (Bu OP yapmaya çalıştığı şey gibi görünüyor.) – kindall

+11

'sınıf extended_color (renk):' genellikle kötü standartları olduğunu - 'sınıf ExtendedColor (Renkli):' sınıflar için olmalıdır. Sadece bir nitpick – TyrantWave

İlgili konular