Python——常用的魔法方法

写在前面

在python中,形如__ xx__()的函数叫做魔法方法,指的是具有特殊功能的函数。

1. __ init __ ()

用来初始化一个类对象的函数,它在类中不写并不会报错,但是不写这个类就不能用(谁会去写一个啥属性都没有的类啊,有病啊);
这个函数执行时,OS会在内存中开辟一块空间来存放一个对象

2. __ str __()

当使用print输出对象的时候,默认打印对象的内存地址。如果一个类重写了__ str __方法,那么就会打印这个方法的返回值

class Person():
    def __str__(self):
        return "hello"
    
tom = Person()
print(tom) # "hello"

3. __ del __()

当删除对象时,python解释器会默认调用__ del 方法;当对象生命周期结束时,python的垃圾回收机制也会自动调用 del __方法进行回收。

class Person():
    def __del__(self):
        print(f'{self}对象已被删除')
    
tom = Person()
del tom

# result
<__main__.Person object at 0x00000287CD651608>对象已被删除

4. __ call __()

这个函数可以证明类对象或者其他例如函数是否可调用。详细参考我的博客

5. __ next __()

它是用来判断某种数据类型是否可迭代的

6. __ doc __()

获取类或方法得描述信息

class Foo():
	"""
	这是类描述
	"""

	def start(self):
		"""
		这是类方法描述
		"""
		pass

f = Foo()
print(Foo.__doc__)
print(f.start.__doc__)

# results 
这是类描述
这是类方法描述

7. __ module __ && __ class __

  • __ module __ 表示当前操作的对象在那个模块
  • __ class __ 表示当前操作对象的类是什么

test.py

class Person():
	
	def __init__():
		self.name = 'laowang'

main.py

from test import Person

obj = Person()
print(obj.__module__) # 输出test
print(obj.__class__) # 输出test.Person

8. __ dict __

获取类或对象的所有信息以字典的形式返回

你可能感兴趣的:(Python)