__new__,__init__,__call__方法介绍

本文中介绍python常用的两个方法__new__,__init__,__call__.

  1. __init__方法

    __init__方法负责初始化python对象,在系统执行,初始化对象。

class A:
    def __init__(self):
        print("__init__")
        super(A, self).__init__()
    def __new__(cls):
        print("__new__")
        return super(A, cls).__new__(cls)
    
    def __call_(self):
        print("__call__")

A()     

输出结果

__new__
__init__

从输出结果看,__new__方法最先被调用,返回一个实例对象,接着__init__别调用。而__call__未被调用

  1. __call__方法
    关于__call__方法,先提到一个概念,叫可调动对象,平时定义的函数,内置函数和类都属于可调用对象,如果类中实现了__call__方法,那实例对象将成为一个可调用对象。
class A:
    def __init__(self):
        print("__init__")
        super(A, self).__init__()
    def __new__(cls):
        print("__new__")
        return super(A, cls).__new__(cls)
    
    def __call_(self):
        print("__call__")

a=A()     
a()

输出结果

__new__
__init__
__call__
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值