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 __

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

InceptionZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值