Skip to main content
 首页 » 编程设计

python之如何覆盖 Python 的 'str' 以便它返回大写值

2025年05月04日13oomusou

如何定义

class CapStr(str): 
    # ... 

在 Python (3.7+) 中,结果 str 子类中的所有字母都大写,例如

>>> foo: CapStr = CapStr('aBcd') 
>>> foo 
'ABCD' 
>>> CapStr('wXyZ') 
'WXYZ'  

请您参考如下方法:

您可以覆盖 str 的子类的 __new__ 方法,以用大写值包装其父类(super class)的 __new__ 方法:

class CapStr(str): 
    def __new__(cls, value): 
        return super().__new__(cls, value.upper()) 

这样:

>>> CapStr('aBcd') 
'ABCD'