Python中new方法的应用

本文详细解释了Python中的__new__方法及其在类实例化过程中的作用,并通过示例展示了如何利用该方法简化特定功能实现,如温度转换和字符串处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python中__new__方法是在一个类对象实例化的时候调用的第一个方法,它的第一个参数是这个类对象(cls),而其他的参数会直接传递给__init__方法,它通常会返回这个类对象的一个实例对象,当然你也可以重写__new__方法使其放回自己想要的结果.

例如:要设计一个类使其尽量简单的返回摄氏度到华氏度的转换

>>>print(C2F(25))

77

可以通过重写__new__方法简练的达到我们想要的效果

重写int类使其传入字符串如果可以转换成数字型则输出数字,不能则输出字符串的ASCII码值的和

>>>print(Nint('123'))

123

>>>print(Nint('B'))

66

//===============摄氏到华氏转换===============
class C2F(float):
    def __new__(cls, arg = 0.0):
        return float.__new__(cls, arg*1.8 + 32)
        
//===============int类===============
class Nint(int):
    def __new__(cls, arg = 0)
        sums = 0
        if isinstance(arg, str):
            for each in arg:
                sums += ord(each)   #ord()取字符的ASCII值
            
            arg = sums
        
        return int.__new__(cls, arg)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值