「python 进阶」 链式调用原理

本文探讨Python中如何通过动态的`__getattr__`实现链式调用,以`Path().status.wangwei.timeline.list`为例,解释在调用时每个"."是如何触发getattr方法的递归调用,帮助理解链式调用的工作机制。
摘要由CSDN通过智能技术生成

学Python,用RPA

艺赛旗RPA2020.1版本 正在免费下载使用中,欢迎下载使用

www.i-search.com.cn/index.html?from=line1

#!/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 的格式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值