版权声明:本文为CSDN博主「小肖爱编程」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/x1538644319/article/details/115175536
在学习python的过程中经常会用到两个函数,一个是__init__,一个是__call__。本章内容将详细解释一下这两个函数的作用和用法。(注意这两个函数是两个下划线_ _ init _ _,两个下划线申明该属性为私有 )。
1、__init__函数:创建一个类的实例化,每当创建一个类的实例对象python解释器都会主动去调用它(使用此函数第一个参数必须为self)。
2、__call__函数:使得类实例对象可以像调用普通函数那样使用。
上代码…
举个栗子,比如计算两个数相加。
# 1、普通方式
class Add:
def set_num(self, x, y):
self.x = x
self.y = y
def add_num(self):
sum = self.x+self.y
print(sum)
a = Add()
a.set_num(1, 2)
a.add_num()
# 计算两数相加
# 1、使用__init__函数
class Add:
def __init__(self, x, y):
self.x = x
self.y = y
def add_num(self):
sum = self.x+self.y
print(sum)
a = Add(1, 2)
a.add_num()
两种方式区别:在使用__init__函数时,不用繁琐的去设定set_num函数,在创建对象时可以直接传参,方便快捷。
#普通函数
class A:
def fun(self, f):
self.f = f
print(self.f)
a = A()
a.fun("我是小可爱!")
# __call__函数
class A:
def __call__(self, f):
self.f = f
print(self.f)
a = A()
a("我是小可爱!")
_call _函数使得对象可以直接当函数使用。a(“我是小可爱!”)等同于a._call _(“我是小可爱!”)。