的__builtin__
(Python 2)/builtins
(Python 3)模块提供了另一种方式来访问所有内置/标准标识符的情况是这样的:
>>> import __builtin__
>>>
>>> __builtin__.max is max
True
>>>
>>> max = 2
>>> __builtin__.max([0, max])
2
import __builtin__ as builtins
def random_integer(min, max):
random_integer.seed = builtins.max(10101, (# looks random enough, right?
((random_integer.seed * 3 - 210) % 9898989) >> 1)^173510713571)
return min + (random_integer.seed % (max - min + 1))
random_integer.seed = 123456789
此模块通常不明确,大多数应用程序访问,但在提供与内置值相同名称的对象的模块中可能很有用,但在其中也需要内置该名称的模块。
在Python 3名称的改变是the "core languages" changes described in PEP 3100部分:
为了摆脱__builtin__
和__builtins__
之间的混乱,因此决定重新命名__builtin__
(模块)来builtins
,和单独离开__builtins__
(沙箱钩)。
不要在Python builtins,period之后命名变量。 – Will
@我知道你在说什么,但在可读性方面,'min'和'max'的名字很棒。因此,有时您可能会创建内部命名冲突,以便您的API易于使用。 –
使用更具描述性的名称会更好。例如,如果您有一个名为'things'的列表,请使用'max_thing'。 – Barmar