python中的特殊函数__init__()和__call__()

在python中,__int__()函数的意义等同于类的构造器(同理,__del__()等同于类的析构函数)。因此,__init__()方法的作用是创建一个类的实例。

class Flower(object):
    def __init__(self,color):
        self.color = color
        print('color is', color)

rose = Flower('red')

以上程序创建了一个Flower类 ,又定义了一个实例rose,并给它赋值color为red,运行结果如下:

color is red

在python中,函数其实是一个对象,所有的函数都是callable对象。一个类实例也可以变成一个可调用对象,只需要在类中实现一个特殊方法。修改上面Flower类代码:

class Flower(object):
    def __init__(self,color):
        self.color = color
        print('color is', color)
    def __call__(self,dollar):
        self.dollar = dollar
        print('value is', dollar, 'dollar')
        
value = Flower('red')(100)

 该程序创建了一个Flower类,Flower('red')定义了一个实例,Flower('red')(100)相当于实例(可以把这个实例看成一个函数)调用了__call__()方法

总结:

1、__int__()的作用是初始化某个类的一个实例

2、__call__()的作用是使实例能够像函数一样被调用,同时不影响实例本身的生命周期(__call__()不影响一个实例的构造和析构)。但是__call__()可以来改变实例的内部成员的值。

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python,__call__和__init__方法Python特殊方法。 __init__方法是一个构造函数,用于在创建类的实例时进行初始化操作。例如,当你实例化一个类时,__init__方法会自动调用并传递相应的参数。在__init__方法,你可以设置对象的属性、执行一些必要的操作或者初始化一些变量。 __call__方法是一个可调用对象,使得一个类的实例可以像函数一样被调用。当你在一个类定义了__call__方法后,你可以直接使用实例名加小括号的方式调用类的实例,就像调用一个函数一样。 在引用的示例,类A的__call__方法允许实例a像函数一样被调用。当我们执行a()时,会打印出'i can be called like a function'。 __init__和__call__方法可以在同一个类共存,并且起到不同的作用。__init__方法用于对象的初始化,而__call__方法则使得对象可以被调用。 在引用的示例,我们可以看到两种方式定义了一个计算两个数相加的类。第一个类Add使用了__init__方法,在实例化时传入了两个参数,然后通过add_num方法计算并输出了相加的结果。第二个类Add使用了__call__方法,实例化时没有传入参数,而是直接在实例a后的小括号内传入了两个参数,然后通过add_num方法计算并输出了相加的结果。 总结起来,__init__方法用于初始化对象,而__call__方法使得对象可以像函数一样被调用。这两个方法Python类的定义非常常见且有着重要的作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值