2016-05-12 301 views
0

我有繼承的類的str繼承,屬性訪問

class UpperStr(str): 

    def __new__(cls, value, font_size=12): 
     print 'In redefined new...' 
     return str.__new__(cls, value.upper()) 

    def __init__(self, value, font_size=12): 
     print 'In init...' 
     self.font_size = font_size 

然後我可以訪問在派生類中定義的屬性:

s = UpperStr('hello') 
print s.font_size 

但是因爲沒有辦法從python派生類的實例中獲取基類的實例,我怎麼能得到str本身的值(在這種情況下是'hello')?

+0

's'或'self'就是''你好'。 's'基本上也是'str'的​​一個實例。 –

+0

但python中的繼承假定您的派生類將具有與派生類本身中定義的基礎+附加方法和屬性相同的屬性和方法。在這個意義上's'不是'str'的​​一個實例。什麼是合乎邏輯的解釋? – user3880400

+0

'isinstance(s,str)'...看起來像's'是我的'str'! – kindall

回答

1

使用self來引用字符串本身。