如何使用内置函数如果它的名称被另一个模块占用?

4 投票
2 回答
2955 浏览
提问于 2025-04-18 05:58

比如,Python里面有一个内置的函数叫做 any。问题是,当你导入了 numpy 这个模块后,any 函数的定义就会被改变。

那么,我该如何使用原来的 any 函数,也就是在 __builtin__ 模块里的那个呢?

举个例子:

from numpy import *
any(i % 3 for i in [3, 3, 4, 4, 3])

但是这段代码是不能运行的!抱歉,我在Python方面还是个新手。

2 个回答

1

你应该尽量避免使用“from name import *”这种写法。因为这样做会引发一些问题,所以大家都不太喜欢这样。

import numpy as np
np.any(i % 3 for i in [3, 3, 4, 4, 3])

这样你就能清楚地知道自己在用什么,以及这些东西是从哪里来的。这样代码看起来更清晰,也更容易理解。

from name import *

这样做其实很糟糕,因为你根本不知道自己到底引入了什么。如果这个包里有很多模块,而你并不需要用到它们,它们都会被一起引入。你只想要你需要用的部分。有些库可能会非常庞大,这样就会引入很多你根本不需要的东西。

撰写回答