python复原被覆盖的内置函数

笔者了解到的内置函数被覆盖的情况有两类:

  1. 变量名使用内置函数名
  2. 使用加载的模块,如果该模块使用非常频繁,用*代替后可能出现内置函数被覆盖的情况,代码及问题如下(隐去部分文件路径):
from cvxpy import *
max(1, 2)

在这里插入图片描述

情况1的最简单恢复办法为修改变量名,后者相对复杂一些。笔者从网络上查到的方法有两种,大同小异:

import __builtin__
a = __builtin__.max(1,2)
a = builtin.max(1,2)

但是它们都报错了。
在这里插入图片描述
在这里插入图片描述
对于简单的内置函数,可以选择自己手动写一个不大可能被覆盖的内置函数副本,命名方式可以是最后一个小写字母的重复,如max变成maxx,min变成minn。

def minn(a, b):
	if a < b:
		return a
	elsereturn b

复杂的内置函数源码的详细解决方案目前笔者并未找到,总体思路是找到python内置函数的.py文件,找出对应函数并按照上述类似方式进行重命名。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值