Python风格的关键是完全体现在Python的数据模型上的。
数据模型其实是对python框架的描述,它规范了这门语言构建模块的接口。
不管在哪种框架下写程序,都会花费大量时间实现那些会被框架本身调用的方法,当python解释器碰到特殊方法时,会使用特殊方法去激活基本的对象操作。
特殊方法以两个下划线开始,两个下划线结尾。于是乎特殊方法也叫双下方法(dunder method)
例如:obj[key]背后其实是__getitem__方法。为了得到obj[key]的值,解释器实际上调用的是obj.__getitem__(key)。
>>> class DataTest:
def __init__(self,id,address):
self.id=id
self.address=address
self.d={self.id:1,
self.address:"192.168.1.1"
}
def __getitem__(self,key):
return "hello"
>>> data=DataTest(1,"192.168.2.11")
>>> print(data[2])
hello
在类中定义了getitem方法,下面调用的时候,即使data中并没有data[2],也调用了类中的getitem方法,并返回了hello。