我如何定义
class CapStr(str):
# ...
在Python(3.7+)中,以便结果str
子类中的所有字母都大写,例如
>>> foo: CapStr = CapStr('aBcd')
>>> foo
'ABCD'
>>> CapStr('wXyZ')
'WXYZ'
答案 0 :(得分:6)
您可以覆盖__new__
的子类的str
方法,以将其超类的__new__
方法包装为大写的值:
class CapStr(str):
def __new__(cls, value):
return super().__new__(cls, value.upper())
这样:
>>> CapStr('aBcd')
'ABCD'