Python标准库---五、内置函数(P-K-R)

上一篇文章: Python标准库---四、内置函数(L-M-N-O)
下一篇文章: Python标准库---六、内置函数(P-K-R-S-T-U)

内置函数:

clipboard.png

50. pow(x, y[, z])

返回 x 的 y 次幂;若是 z 存在,则对 z 取余(比直接 pow(x, y) % z 计算更高效)。两个参数形式的 pow(x, y) 等价于幂运算符: x**y。

参数必须为数值类型。 对于混用的操做数类型,则适用二元算术运算符的类型强制转换规则。 对于 int 操做数,结果具备与操做数相同的类型(转换后),除非第二个参数为负值;在这种状况下,全部参数将被转换为浮点数并输出浮点数结果。 例如,102 返回 100,但 10-2 返回 0.01。 若是第二个参数为负值,则第三个参数必须省略。 若是存在 z,则 x 和 y 必须为整数类型,且 y 必须为非负数。git

51. print(*objects, sep=' ', end='n', file=sys.stdout, flush=False)

将 objects 打印到 file 指定的文本流,以 sep 分隔并在末尾加上 end。 sep, end, file 和 flush 若是存在,它们必须以关键字参数的形式给出。
全部非关键字参数都会被转换为字符串,就像是执行了 str() 同样,并会被写入到流,以 sep 且在末尾加上 end。 sep 和 end 都必须为字符串;它们也能够为 None,这意味着使用默认值。 若是没有给出 objects,则 print() 将只写入 end。

file 参数必须是一个具备 write(string) 方法的对象;若是参数不存在或为 None,则将使用 sys.stdout。 因为要打印的参数会被转换为文本字符串,所以 print() 不能用于二进制模式的文件对象。 对于这些对象,应改用 file.write(...)。segmentfault

输出是否被缓存一般决定于 file,但若是 flush 关键字参数为真值,流会被强制刷新。缓存

在 3.3 版更改: 增长了 flush 关键字参数。函数

52. class property(fget=None, fset=None, fdel=None, doc=None)

返回 property 属性。

fget 是获取属性值的函数。 fset 是用于设置属性值的函数。 fdel 是用于删除属性值的函数。而且 doc 为属性对象建立文档字符串。spa

一个典型的用法是定义一个托管属性 x:code

class C:
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")
若是 c 是 C 的实例,c.x 将调用getter,c.x = value 将调用setter, del c.x 将调用deleter。

若是给出,doc 将成为该 property 属性的文档字符串。 不然该 property 将拷贝 fget 的文档字符串(若是存在)。 这令使用 property() 做为 decorator 来建立只读的特征属性能够很容易地实现:对象

class Parrot:
    def __init__(self):
        self._voltage = 100000

    @property
    def voltage(self):
        """Get the current voltage."""
        return self._voltage
以上 @property 装饰器会将 voltage() 方法转化为一个具备相同名称的只读属性的 "getter",并将 voltage 的文档字符串设置为 "Get the current voltage."

特征属性对象具备 getter, setter 以及 deleter 方法,它们可用做装饰器来建立该特征属性的副本,并将相应的访问函数设为所装饰的函数。 这最好是用一个例子来解释:ip

class C:
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x
上述代码与第一个例子彻底等价。 注意必定要给附加函数与原始的特征属性相同的名称 (在本例中为 x。)

返回的特征属性对象一样具备与构造器参数相对应的属性 fget, fset 和 fdel。文档

在 3.5 版更改: 特性属性对象的文档字符串如今是可写的。字符串

53. range(stop)

range(start, stop[, step])

虽然被称为函数,但 range 其实是一个不可变的序列类型,参见在 range 对象 与 序列类型 --- list, tuple, range 中的文档说明。

54. repr(object)

返回包含一个对象的可打印表示形式的字符串。 对于许多类型来讲,该函数会尝试返回的字符串将会与该对象被传递给 eval() 时所生成的对象具备相同的值,在其余状况下表示形式会是一个括在尖括号中的字符串,其中包含对象类型的名称与一般包括对象名称和地址的附加信息。 类能够经过定义 __repr__() 方法来控制此函数为它的实例所返回的内容。

55. reversed(seq)

返回一个反向的 iterator。 seq 必须是一个具备 __reversed__() 方法的对象或者是支持该序列协议(具备从 0 开始的整数类型参数的 __len__() 方法和 __getitem__() 方法)。

56. round(number[, ndigits])

返回 number 舍入到小数点后 ndigits 位精度的值。 若是 ndigits 被省略或为 None,则返回最接近输入值的整数。

对于支持 round() 的内置类型,值会被舍入到最接近的 10 的负 ndigits 次幂的倍数;若是与两个倍数的距离相等,则选择偶数 (所以,round(0.5) 和 round(-0.5) 均为 0 而 round(1.5) 为 2)。 任何整数值均可做为有效的 ndigits (正数、零或负数)。 若是 ndigits 被省略或为 None 则返回值将为整数。 不然返回值与 number 的类型相同。

对于通常的 Python 对象 number, round 将委托给 number.__round__。

注解 对浮点数执行 round() 的行为可能会使人惊讶:例如,round(2.675, 2) 将给出 2.67 而不是指望的 2.68。 这不算是程序错误:这一结果是因为大多数十进制小数实际上都不能以浮点数精确地表示。 请参阅 浮点算术:争议和限制 了解更多信息。

上一篇文章: Python标准库---四、内置函数(L-M-N-O)
下一篇文章: Python标准库---六、内置函数(P-K-R-S-T-U)
相关文章
相关标签/搜索