[python 进阶] 链式调用原理
#!/usr/bin/env Python3
# -*- coding: utf-8 -*-
# @Software: PyCharm
# @virtualenv:workon
# @contact: 1040691703@qq.com
# @Desc:Code descripton
__author__ = '未昔/AngelFate'
__date__ = '2020/5/30 20:00'
class Path(object):
def __init__(self, path=''):
self._path = path
def __getattr__(self, path):
return Path('%s/%s' % (self._path, path))
def __str__(self):
return self._path
print(Path().status.wangwei.timeline.list)
利用完全动态的__getattr__
,写出一个链式调用.
在这里使用了递归,在调用时 Path().status.wangwei.timeline.list 中每一个 "." 就是一次调用 __getattr__ 方法。所以就可以理解为什么在输入时要使用 xx.xx 的格式