魔法函数应用

tech2022-07-05  177

魔法函数应用

提示:本篇文章讲述常见的几个魔法函数及其应用例子


文章目录

魔法函数应用一、魔法函数1.__doc__:获取类的描述信息2.__module__:获取当前操作的对象在哪个模块3. __call__:对象后面加括号,触发执行;3.__str__:如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值4.__init__:初始化方法,通过类创建对象时,自动触发执行



提示:以下是本篇文章正文内容,下面案例可供参考

一、魔法函数

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__方法;特别注意的是涉及继承时,子类继承父类的属性;如果子类与父类属性相同时,则采用子类属性,相当于重写属性;


最新回复(0)