流畅的python--学习笔记(一)

这篇博客介绍了Python的魔术方法,如__init__、__getitem__、__setitem__、__len__等,强调它们由解释器自动调用。通过自定义数组类展示了魔术方法的使用。同时,讲解了Python内置类型如random.choice、reversed、dict、sorted以及len()的用法,解释了len()方法在CPython中快速获取长度的原因。
摘要由CSDN通过智能技术生成

写这篇博客的时候我已经看完了前两章了,所以这次是为了温习之前所看的知识。

第一章讲的是Python的魔术方法,所实话我是第一次听到这个名字(我的基础真的很差哈哈哈。)。

学过一点Python的都知道,在编写一个类的时候一般都会有一个__init__(self)这样的初始化函数,这种用函数名前后都用两个下划线组成的函数叫做魔术方法。也叫做dunder method(双下方法)

需要注意的是,魔术方法一般是通过解释器来调用的。

我们可以来看这样的一个类,我会详细的说明魔术方法到底是一个什么东西。

class Array:

	def __init__(self,size=32):
		self._size = size
		self._items = [None] * size

	def __getitem__(self,index):
		return self._items[index]

	def __setitem__(self,index,value):
		self._items[index] = value

	def __len__(self):
		return self._size

	def clear(self,value=None):
		for i in range(len(self._items)):
			self._items[i] = value

	def __iter__(self):
		for item in self._items:
			yield item

这是我自定义的一个抽象数据类型,是一个数组类,我们看到里面的所有的方法除了clear之外全是魔术方法。

当我们输入a = Array()的时候,我们并没有手动调用__i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值