2016-05-12 97 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来引用字符串本身。