说一下自己理解的__new__()

__new__() 在__init__()之前使用,__new__()决定__init__()如何去进行类属性的定义以及对于类属性的一些变动!

举个很简单的例子,就比如你能自定义自己生的孩子的属性!你自己能自定义的这个操作就是__new__()

定义出来的孩子的样子属性就是__init__()

(ps:我理解了好久呢,终于在今天理解成功了,知道了什么意思)

class Test(object):

    def __new__(cls,name):
        if isinstance(name,str):
            return object.__new__(cls)
        else:
            print( "类型错误!")

    def __init__(self,name):
        self.name = name
if __name__ == '__main__':

    c = Test("str")

讲解:

__new__ ()之前是对name进行了数据的检查,检查name是否是str类型,如果是,则将name进行赋值给类属性.如果不是则进行了输出!

同理,也可以对其它的进行这样子设置。

(ps:我又水了一期。。。)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值