魔法函数应用
提示:本篇文章讲述常见的几个魔法函数及其应用例子
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、魔法函数
1.doc:获取类的描述信息
代码如下(示例):
class Lei:
"""
类的描述信息
"""
def __int__(self,name):
self.name = name
self.age = 18
def func(self):
print("func函数")
def __call__(self, *args, **kwargs):
print("call函数")
if __name__ == '__main__':
print(Lei.__doc__) #类的描述信息
控制台得出: 类的描述信息
2.module:获取当前操作的对象在哪个模块
代码如下(示例):
class Lei:
def func(self):
print("func函数")
def __call__(self, *args, **kwargs):
print("call函数")
if __name__ == '__main__':
a = Lei()
print(Lei.__module__)
# 或者:
print(a.__module__)
控制台得出:
__main__
__main__
3. call:对象后面加括号,触发执行;
代码如下(示例):
class Lei:
def __init__(self,name):
self.name = name
self.age = 18
def func(self):
print("func函数")
def __call__(self, *args, **kwargs):
print("call函数")
def __str__(self):
return self.name
if __name__ == '__main__':
a = Lei("小明")
a()
控制台得出:call函数
对象() 或者 类()()调用
3.str:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值
代码如下(示例):
class Lei:
def __init__(self,name):
self.name = name
self.age = 18
def func(self):
print("func函数")
def __call__(self, *args, **kwargs):
print("call函数")
def __str__(self):
return self.name
if __name__ == '__main__':
a = Lei("小明")
print(a)
控制台得出:小明
4.init:初始化方法,通过类创建对象时,自动触发执行
代码如下(示例):
class Lei:
def __init__(self,name):
self.name = name
self.age = 18
def func(self):
print("func函数")
def __call__(self, *args, **kwargs):
print("call函数")
def __str__(self):
return self.name
if __name__ == '__main__':
a = Lei("小明")
print(a.age)
控制台得出:18
自动调用__init__方法;特别注意的是涉及继承时,子类继承父类的属性;如果子类与父类属性相同时,则采用子类属性,相当于重写属性;