python给内置函数重命名_重用Python内置函数的名称可以吗?

这就变成了一系列不同的选择,而不是一个直截了当的答案。然而,有两个概念至关重要:如果用户明确选择,那么用户应该能够替换range和xrange;但是

用户不应该隐式/意外地替换range和{}

对于代码的读者来说,应该始终清楚地知道在哪里使用了内建,在哪里使用了替换。在

出于这个原因,我在下面列出的所有选项都会阻止通配符导入(from inclusive import *)隐藏内置项。哪个是您的最佳选择取决于您将替换内置模块视为模块的主要用途还是次要用途。用户一般是想替换内置的,还是一起使用?在

在你的立场上,我想我会做以下事情:

inclusive.py:"""Inclusive versions of range and xrange."""

__all__ = [] # block 'from inclusive import *'

old_range, old_xrange = range, xrange # alias for access

def range(...): # shadow the built-in

...

def xrange(...): # ditto

...

这允许用户:import inclusive和访问inclusive.range和{}

from inclusive import range, xrange,清楚地替换了内置组件,没有任何不愉快的副作用;或者

from inclusive import range as irange, xrange as ixrange将内置版本和替换版本一起使用。在

将__all__定义为空列表意味着from inclusive import *不会悄悄地隐藏内置项。在

如果你真的想要,你可以加上:

^{pr2}$

到inclusive.py的结尾,并将__all__定义修改为:__all__ = ['irange', 'ixrange']

现在用户有两个额外的选择:from inclusive import irange, ixrange(比上面的选项3中手动设置函数别名要简单一些);以及

from inclusive import *(与上面的结果相同,仍然没有隐藏的内置阴影)。在

当然,您可以完全相反-命名您自己的版本irange和{},那么如果用户真的希望替换内置组件,他们必须:from inclusive import irange as range, ixrange as xrange

这不需要您定义__all__来避免使用通配符导入来隐藏内置。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值