python里类自动调用方法有哪些

Python (142) 2023-07-17 23:09:58


特殊方法(特殊成员):这类方法名字特殊,有特殊用途,会自动调用。因为特殊又会自动调用,大家也叫做魔术方法(魔法方法)。特殊方法组成:固定命名-开头结尾都是双下划线。下面针对几种常见的自动调用方式以及特殊方法,来给大家讲解一下如何使用这些方式,好啦,下面开始正题吧。

1、__init__():

一般用来初始化类的参数,大家习惯叫做【构造方法】

使用情况:最多使用,一般的类都会使用

代码如下:

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
classPerson:
def__init__(self,name,age):
print('执行__init__方法')
p1=Person('jack',18)
classPerson: def__init__(self,name,age): print('执行__init__方法') p1=Person('jack',18)
classPerson:
def__init__(self,name,age):
print('执行__init__方法')
p1=Person('jack',18)

2、__call__():

告诉你类对象也可以当作函数来调用,一般叫【函数式调用】。

使用情况:使用较少,装饰器用的多。

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
classPerson:
def__init__(self):
print('执行__init__方法')
def__call__(self,*args,**kwargs):
print('执行__call__方法')
p1=Person()
classPerson: def__init__(self): print('执行__init__方法') def__call__(self,*args,**kwargs): print('执行__call__方法') p1=Person()
classPerson:
def__init__(self):
print('执行__init__方法')
def__call__(self,*args,**kwargs):
print('执行__call__方法')
p1=Person()

3、__get__():

类中实现这个方法叫做描述器(__set__、__delete__)

使用情况:使用较少,装饰器用的多

纯文本
复制到剪贴板
在新窗口中打开代码
EnlighterJS 3 Syntax Highlighter
classA:
def__init__(self):
print('执行__init__方法')
def__get__(self,instance,owner):
print('执行__get__方法')
classB:
a=A()
b=B()
classA: def__init__(self): print('执行__init__方法') def__get__(self,instance,owner): print('执行__get__方法') classB: a=A() b=B()
classA:
def__init__(self):
print('执行__init__方法')
def__get__(self,instance,owner):
print('执行__get__方法')
classB:
a=A()
b=B()

还有很多很多,是不需要我们自己去写的,我们只知道,这类特殊方法是通过某种方式自动调用执行的就行了。当然,如果你自己写的某个类中,希望以这样的方式运行,那你就自己去写对应都特殊函数就可以了。

THE END

发表回复