注册 登录
编程论坛 Python论坛

请问大虾:python有没有方法扩展第三方库的类方法

big_chen 发布于 2023-06-29 10:30, 449 次点击
大虾上午好:
菜鸟正在学习python,想从第三方库cn2an中扩展一下类class An2Cn(object)的方法an2cn(self, inputs: Union[str, int, float] = None, mode: str = "low") -> str:
使其能在用“low”做第二个参数时输出带RMB¥前缀带两位小数的浮点数,在用“rmb”做第二个参数时,输出带“人民币”前缀的中文大写金额。初步接触派生类虚函数,貌似需要在基类的方法中加上虚方法标志才能在派生类用虚方法进行改写,但是我不想动第三方库已成熟的东西。

诚恳请教大虾,该如何用OOP的方式来解决这个问题?非常期待大虾能解答,谢谢先!

附我自己拙劣的结构化方法来拓展:
def float2currencycap(fval, mode):
    if mode == 'lower':
        return 'RMB¥%.2f' % fval
    elif mode == 'upper':
        return "人民币" + cn2an.an2cn(fval, "rmb")
    else:
        return 'unknown mode!'
2 回复
#2
yiyanxiyin2023-06-29 16:00
_an2cn=An2Cn.an2cn
def float2currencycap(self,fval, mode):
    if mode == 'lower':
        return 'RMB¥%.2f' % fval
    elif mode == 'upper':
        return "人民币" + _an2cn(self,fval, "rmb")
    else:
        return _an2cn(self,fval, mode)
An2Cn.an2cn=float2currencycap   
#3
big_chen2023-06-30 17:07
天哪,菜鸟叩谢大虾,看来是我原来的思维受限了,最后一个语句实际上在该库里一些函数就有类似的用法,可是我没有想到在这里还能解决这个问题,太感谢了!
1