Python系列——内置函数(h,i)

2022年7月26日 242点热度 0人点赞 0条评论

Python 解释器内置了很多函数和类型,您可以在任何时候使用它们。本章介绍字母h,i开头的10个函数。

主要内容:
  1. hasattr()

  2. hash()

  3. help()

  4. hex()

  5. id()

  6. input()

  7. int()

  8. isinstance()

  9. issubclass()

  10. iter()

(声明:所有示例均使用Python 3.8运行)

1、hasattr(objectname)

该实参是一个对象和一个字符串。如果字符串是对象的属性之一的名称,则返回 True,否则返回 False。(此功能是通过调用 getattr(object, name) 看是否有 AttributeError 异常来实现的。)


2、hash(object)

返回该对象的哈希值(如果它有的话)。哈希值是整数。它们在字典查找元素时用来快速比较字典的键。相同大小的数字变量有相同的哈希值(即使它们类型不同,如 1 和 1.0)。


3、help([object])

启动内置的帮助系统(此函数主要在交互式中使用)。如果没有实参,解释器控制台里会启动交互式帮助系统。如果实参是一个字符串,则在模块、函数、类、方法、关键字或文档主题中搜索该字符串,并在控制台上打印帮助信息。如果实参是其他任意对象,则会生成该对象的帮助页。


4、hex(x)

将整数转换为以“0x”为前缀的小写十六进制字符串。如果 x 不是 Python int 对象,则必须定义返回整数的 __index__() 方法。

>>> hex(1)'0x1'>>> hex(15)'0xf'>>> hex(255)'0xff'>>> hex(-45)'-0x2d'

如果要获取浮点数的十六进制字符串形式,请使用 float.hex() 方法。


5、id(object)

返回对象的“标识值”。该值是一个整数,在此对象的生命周期中保证是唯一且恒定的。两个生命期不重叠的对象可能具有相同的 id() 值。

>>> x = 1>>> id(x)140715753281184

6、input([prompt])

如果存在 prompt 实参,则将其写入标准输出,末尾不带换行符。接下来,该函数从输入中读取一行,将其转换为字符串(除了末尾的换行符)并返回。当读取到 EOF 时,则触发 EOFError。

>>> name = input("type your name: ")type your name: alex>>> name

7、  class int([x])

class int(xbase=10)

返回一个基于数字或字符串 x 构造的整数对象,或者在未给出参数时返回 0。如果 x 定义了 __int__(),int(x) 将返回 x.__int__()。如果 x 定义了 __index__(),它将返回 x.__index__()。如果 x 定义了 __trunc__(),它将返回 x.__trunc__()。对于浮点数,它将向零舍入。

如果 x 不是数字,或者有 base 参数,x 必须是字符串、bytes、表示进制为 base 的整数字面值的 bytearray 实例。该文字前可以有 + 或 - (中间不能有空格),前后可以有空格。一个进制为 n 的数字包含 0 到 n-1 的数,其中 a 到 z (或 A 到 Z )表示 10 到 35。默认的 base 为 10 ,允许的进制有 0、2-36。2、8、16 进制的数字可以在代码中用 0b/0B 、 0o/0O 、 0x/0X 前缀来表示。进制为 0 将按照代码的字面量来精确解释,最后的结果会是 2、8、10、16 进制中的一个。所以 int('010', 0) 是非法的,但 int('010') 和 int('010', 8) 是合法的。


8、isinstance(objectclassinfo)

如果参数 object 是参数 classinfo 的实例或者是其 (直接、间接或虚拟) 子类则返回 True。如果 object 不是给定类型的对象,函数将总是返回 False。如果 classinfo 是类型对象元组(或由其他此类元组递归组成的元组),那么如果 object 是其中任何一个类型的实例就返回 True。如果 classinfo 既不是类型,也不是类型元组或类型元组的元组,则将引发 TypeError 异常。


9、issubclass(classclassinfo)

如果 class 是 classinfo 的 (直接、间接或虚拟) 子类则返回 True。类会被视作其自身的子类。classinfo 也以是类对象的元组,在此情况下 classinfo 中的每个条目都将被检查。在任何其他情况下,都将引发 TypeError 异常。


10、iter(object[sentinel])

返回一个 iterator 对象。根据是否存在第二个实参,第一个实参的解释是非常不同的。如果没有第二个实参,object 必须是支持迭代协议(有 __iter__() 方法)的集合对象,或必须支持序列协议(有 __getitem__() 方法,且数字参数从 0 开始)。如果它不支持这些协议,会触发 TypeError。如果有第二个实参 sentinel,那么 object 必须是可调用的对象。这种情况下生成的迭代器,每次迭代调用它的 __next__() 方法时都会不带实参地调用 object;如果返回的结果是 sentinel 则触发 StopIteration,否则返回调用结果。




56870Python系列——内置函数(h,i)

这个人很懒,什么都没留下

文章评论