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'
)?
「s」または「self」はここでは「hello」です。 's'は基本的に' str'のインスタンスです。 –
ですが、Pythonの継承では、派生クラスは、派生クラス自体で定義された基底+追加メソッドおよび属性と同じ属性およびメソッドを持つことを前提としています。 's'はその意味で' str'のインスタンスではありません。論理的な説明は何ですか? – user3880400
'isinstance(s、str)' ... 's'のように見えるのは' str'です! – kindall