Python 基础函数 03(G ~ I)

Python解释器内置了许多始终可用的功能和类型。它们按字母顺序在此处列出。

Built-in Functions Built-in Functions
getattr() globals()
hasattr() hash()
help() hex()
id() input()
int() isinstance()
issubclass() iter()
import()

getattr(object, name[ , default])

返回object的命名属性的值。 名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,等效于 。如果named属性不存在,则返回default(如果提供),否则引发。getattr(x, ‘foobar’)x.foobarAttributeError

globals()

返回表示当前全局符号表的字典。这始终是当前模块的字典(在函数或方法中,这是定义该模块的模块,而不是从中调用该模块的模块)。

hasattr(object, name)

参数是一个对象和一个字符串。结果是True,字符串是否是对象属性之一的名称,False如果不是。(这是通过调用并查看它是否引发来实现的。)getattr(object, name)AttributeError

hash(object)

返回对象的哈希值(如果有)。哈希值是整数。它们用于在字典查找期间快速比较字典关键字。比较相等的数值具有相同的哈希值(即使它们的类型不同,例如1和1.0)。

注意 对于具有自定义__hash__()方法的对象,请注意,它会hash() 根据主机的位宽截断返回值。有关__hash__()详细信息,请参见。

help([object])

调用内置的帮助系统。(此功能旨在用于交互式使用。)如果未提供任何参数,则交互式帮助系统将在解释器控制台上启动。如果参数是字符串,则将字符串作为模块,函数,类,方法,关键字或文档主题的名称进行查找,并在控制台上打印帮助页面。如果参数是任何其他类型的对象,则会在该对象上生成帮助页面。

请注意,如果在函数的参数列表中出现斜杠(/),则在调用时help(),表示斜杠之前的参数仅是位置信息。有关更多信息,请参阅 仅位置参数上的FAQ条目。

该功能由site模块添加到内置名称空间中。

在版本3.4中进行了更改:更改pydoc并inspect意味着所报告的可调用签名现在更加全面和一致。

hex(x )

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

hex(255)
'0xff'
hex(-42)
'-0x2a'

如果要将整数转换为带前缀或不带前缀的大写或小写十六进制字符串,可以使用以下两种方法之一:

'%#x' % 255, '%x' % 255, '%X' % 255
('0xff', 'ff', 'FF')
format(255, '#x'), format(255, 'x'), format(255, 'X')
('0xff', 'ff', 'FF')
f'{255:#x}', f'{255:x}', f'{255:X}'
('0xff', 'ff', 'FF')

另请参阅format()以获取更多信息。

另请参见int()使用16的底数将十六进制字符串转换为整数。

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

id(object)

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

CPython实现细节:这是对象在内存中的地址。

input([prompt])

如果存在提示参数,则将其写入到标准输出中,而无需尾随换行符。然后,该函数从输入中读取一行,将其转换为字符串(将尾随换行符分隔),然后将其返回。读取EOF时,EOFError将引发。例:


s = input('--> ')  
Monty Python's Flying Circus
s  
"Monty Python's Flying Circus"

如果readline模块已加载,input()则将使用它来提供详细的行编辑和历史记录功能。

在读取输入之前使用参数引发 auditing event builtins.inputprompt

builtins.input/result成功读取输入后,使用结果引发审核事件。

class int([x])

class int(x, base=10)

返回由数字或字符串x构造的整数对象,或者0如果未提供任何参数,则返回 。如果x定义__int__(),则 int(x)返回x.int()。如果x定义index(),则返回x.index()。如果x定义trunc(),则返回x.trunc()。对于浮点数,它会截断为零。

如果x不是数字或给定base,则x必须是一个字符串 bytes,或者是bytearray表示基数base中的整数文字的实例。可选地,文字可以以或开头(之间没有空格),并用空格包围。以n为底的原义文字由0到n-1的数字组成, to (或to )的数值为10到35。默认的底数是10。允许的值为0和2–36。Base-2,-8和-16字面量可以选择加/ , / 或/ 前缀±azAZ0b0B0o0O0x0X,与代码中的整数文字一样。底数0表示要完全解释为代码文字,因此实际的底数是2、8、10或16,因此不合法,而 is和。int(‘010’, 0)int(‘010’)int(‘010’, 8)

整数类型在数字类型中描述-int,float,complex。

在版本3.4中进行了更改:如果base不是的实例,int并且基础对象具有 base.__index__方法,则调用该方法以获取base的整数。以前的版本 base.__int__代替base.index

在版本3.6中进行了更改:允许按代码文字中的下划线对数字进行分组。

在版本3.7中更改:x现在是仅位置参数。

在3.8版中进行了更改:index()如果__int__()未定义,则返回到。

isinstance(object,classinfo )

返回True,如果对象参数是的一个实例CLASSINFO 参数,或其中的(直接,间接或虚拟)的子类物。如果object不是给定类型的对象,则该函数始终返回False。如果classinfo是类型为对象的元组(或递归地为其他此类元组),True则如果object是任何类型的实例,则返回。如果classinfo不是类型或此类的元组,TypeError则会引发异常。

issubclass(class,classinfo )

返回True如果类是子类(直接,间接或虚拟)的CLASSINFO。类被认为是其自身的子类。classinfo可以是类对象的元组,在这种情况下,将检查classinfo中的每个条目。在任何其他情况下,TypeError都会引发异常。

iter(object [,sentinel ] )

返回一个迭代器对象。根据第二个参数的存在,第一个参数的解释非常不同。如果没有第二个参数,则object必须是支持迭代协议(该__iter__()方法)的集合对象,或者它必须支持序列协议(getitem()以int开头的整数参数的方法0)。如果它不支持这些协议中的任何一个, TypeError则引发。如果给定第二个参数sentinel,则object必须是可调用对象。在这种情况下创建的迭代器将在每次对其方法的调用时调用不带参数的 对象__next__()。如果返回的值等于 哨兵,StopIteration 将被提高,否则将返回该值。

另请参见迭代器类型。

第二种形式的一个有用的应用iter()是构建一个块读取器。例如,从二进制数据库文件中读取固定宽度的块,直到到达文件末尾:

from functools import partial
with open('mydata.db', 'rb') as f:
    for block in iter(partial(f.read, 64), b''):
        process_block(block)

import(name,globals = None,locals = None,fromlist =(),level = 0 )

 注意  与importlib.import_module()不同的是,这是一个高级函数在日常的Python编程中并不需要 。

该函数由import语句调用。可以替换它(通过导入builtins模块并分配给 builtins.import)以更改import语句的语义 ,但是强烈建议不要这样做,因为使用导入钩子通常更简单(请参见PEP 302)以达到相同的目标,并且不会导致假设默认导入实现正在使用的代码出现问题。import()不建议直接使用importlib.import_module()。

该函数导入模块名称,可能使用给定的全局变量 和局部变量来确定如何在包上下文中解释该名称。在fromlist里给出了应该从给出的模块导入的对象或子的名字命名。标准实现完全不使用其locals参数,而仅使用其全局参数来确定import语句的包上下文。

级别指定使用绝对导入还是相对导入。0(默认)表示仅执行绝对导入。level的正值 表示相对于模块调用目录的要搜索的父目录数__import__()(请参见详情请参阅 PEP 328)。

当name变量的形式为时package.module,通常返回顶级包(直到第一个点的名称),而不是返回由name命名的模块。但是,当给出非空的fromlist参数时,将返回以名称命名的模块。

例如,该语句导致字节代码类似于以下代码:import spam

spam = __import__('spam', globals(), locals(), [], 0)

该语句导致此调用:import spam.ham

spam = __import__('spam.ham', globals(), locals(), [], 0)

请注意__import__()此处如何返回顶层模块,因为这是通过import语句绑定到名称的对象。

另一方面,该语句导致from spam.ham import eggs, sausage as saus

_temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
eggs = _temp.eggs
saus = _temp.sausage

在此,spam.ham模块从返回__import__()。从该对象中,检索要导入的名称并将其分配给它们各自的名称。

如果您只是想按名称导入模块(可能在包中),请使用importlib.import_module()。

在版本3.3中进行了更改:级别的负值不再受支持(这还将默认值更改为0)。

发布了36 篇原创文章 · 获赞 0 · 访问量 616

猜你喜欢

转载自blog.csdn.net/Corollary/article/details/105424886
今日推荐