このクラスを与えられた
class Stringy(unicode):
def __init__(self,something):
self.something = something
def __repr__(self):
return "Stringy(%s)"%repr(self.something)
def __str__(self):
return "str(%s)"%repr(self.something)
def __unicode__(self):
return "unicode(%s)"%repr(self.something)
以下を実行しています
s = Stringy("Hello")
print s.lower() #prints "hello" !!! Why?
print s # correctly prints str('Hello')
print unicode(s) #correctly prints unicode('Hello')
print [s] #correctly prints Stringy('Hello')
print s.upper() #prints "HELLO" !!! Why?
なぜupper
/ /etcメソッドlower
をトリガーしないのですか?__str__
フードの下で何か
unicode(self).lower()
が起こっているべきではありませんか?
またはstr(self).lower()
?