Python 基础函数 02(D ~ F)

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

Built-in FunctionsBuilt-in Functions
delattr()dict()
dir()divmod()
enumerate()eval()
exec()filter()
float()format()
frozenset()

delattr(object, name)

这与setattr()类似。参数是一个对象和一个字符串。该字符串必须是对象属性之一的名称。如果对象允许,该函数将删除命名属性。例如,等效于。delattr(x, ‘foobar’)del x.foobar

class dict(**kwarg)

class dict(mapping, **kwarg)

class dict(iterable, **kwarg)

创建一个新的字典。该dict对象是字典类。请参见dict和映射类型-字典以获取有关此类的文档。

对于其他容器看到内置list,set以及 tuple类,还有collections模块。

dir([object])

不带参数的情况下,返回当前本地范围内的名称列表。使用一个参数尝试返回该对象的有效属性列表。

如果对象具有名为的__dir__()方法,则将调用此方法,并且该方法必须返回属性列表。这允许实现自定义__getattr__()或__getattribute__()功能的对象自 定义dir()报告其属性的方式 。

如果对象未提供__dir__(),则该函数将尽最大努力从该对象的__dict__属性(如果已定义)及其类型对象中收集信息。结果列表不一定是完整的,并且当对象具有custom时可能是不准确的__getattr__()。

默认dir()机制对不同类型的对象的行为有所不同,因为它试图产生最相关的信息,而不是完整的信息:

如果对象是模块对象,则列表包含模块属性的名称。

如果对象是类型或类对象,则列表包含其属性的名称以及递归其基础属性的名称。

否则,该列表包含对象的属性名称,其类的属性名称以及递归其类的基类的属性。

结果列表按字母顺序排序。例如:

import struct
dir()   # show the names in the module namespace  
['__builtins__', '__name__', 'struct']
dir(struct)   # show the names in the struct module 
['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
 '__initializing__', '__loader__', '__name__', '__package__',
 '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
class Shape:
    def __dir__(self):
        return ['area', 'perimeter', 'location']
s = Shape()
dir(s)
['area', 'location', 'perimeter']

注意 因为dir()主要是为了方便在交互提示符下使用而提供,所以它尝试提供一组有趣的名称,而不是尝试提供一组严格或一致定义的名称,并且其详细行为可能会因版本而异。例如,当参数是类时,元类属性不在结果列表中。

divmod(a,b )

使用两个(非复数)数字作为参数,并在使用整数除法时返回一对包含其商和余数的数字。对于混合操作数类型,适用于二进制算术运算符的规则。对于整数,结果与相同。对于浮点数,结果为,其中q通常为但可能小于1。在任何情况下都非常接近a,如果非零,则与b和b具有相同的符号。(a // b, a % b)(q, a % b)math.floor(a / b)q * b + a % ba % b0 <= abs(a % b) < abs(b)

enumerate(iterable,start = 0 )

返回一个列举对象。iterable必须是序列, 迭代器或其他支持迭代的对象。next()由enumerate()返回的迭代器的方法 返回一个元组,该元组包含一个计数(从start开始,默认为0),以及通过对iterable进行迭代而获得的值。

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1))
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

相当于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

eval(expression [,globals [,locals ] ] )

参数是一个字符串以及可选的全局变量和局部变量。如果提供,则 全局变量必须是字典。如果提供的话,本地变量可以是任何映射对象。

使用globals和locals 字典作为global和local名称空间将expression参数解析并评估为Python表达式(从技术上来说是条件列表)。如果存在globals字典并且不包含key的值,则在解析表达式之前,将在该key下插入对内置模块字典的引用。这意味着 表达式通常可以完全访问标准 模块,并且可以传播受限环境。如果 省略了locals字典,则默认为globals__builtins__builtinsbuiltins字典。如果省略两个字典,则在调用环境中使用全局变量和 局部变量执行表达式eval()。请注意,eval()在封闭环境中 无权访问嵌套作用域(非本地作用域)。

返回值是求值表达式的结果。语法错误被报告为异常。例:

x = 1
eval('x+1')
2

此函数还可用于执行任意代码对象(例如由创建的代码对象compile())。在这种情况下,传递代码对象而不是字符串。如果代码对象已’exec’作为模式参数编译,则其 eval()返回值为None。

提示:exec() 函数支持动态执行语句。的globals()和locals()功能返回当前全球和本地词典,分别,其可以是通过以绕过使用有用eval()或exec()。

请参阅参考资料ast.literal_eval(),以使用仅包含文字的表达式来安全地评估字符串的函数。

使用代码对象作为参数引发审核事件 exec。代码编译事件也可能引发。

exec(object [,globals [,locals ] ] )

此功能支持动态执行Python代码。对象必须是字符串或代码对象。如果是字符串,则将字符串解析为一组Python语句,然后执行该语句(除非发生语法错误)。1如果它是代码对象,则只需执行即可。在所有情况下,执行的代码都可以作为文件输入有效(请参见《参考手册》中的“文件输入”一节)。请注意, 即使在传递给函数的代码的上下文中,也不能在函数定义之外使用returnand yield语句 exec()。返回值为None。

在所有情况下,如果省略了可选部分,则代码将在当前范围内执行。如果仅提供全局变量,则它必须是字典(而不是字典的子类),该字典将用于全局变量和局部变量。如果全局和 当地人给出,它们分别用于全局和局部变量。如果提供的话,本地变量可以是任何映射对象。请记住,在模块级别,全局变量和局部变量是相同的字典。如果exec获得两个单独的对象作为globals和locals,则代码将像嵌入在类定义中一样执行。

如果globals词典不包含该键的值, 则在该键下插入__builtins__对内置模块词典的引用 builtins。这样,您可以在将自己的__builtins__字典传递给之前,将自己的字典插入全局变量中,从而控制可执行代码可以使用哪些内置函数 exec()。

使用代码对象作为参数引发审核事件 exec。代码编译事件也可能引发。

注意 内置的功能globals()和locals()返回当前的全局和局部字典,分别,这可能是通过围绕用作第二个和第三个参数有用exec()。
注意 默认本地变量的功能locals()如下所述:不应尝试对默认本地变量字典进行修改。如果需要在函数返回后查看代码对本地人的影响,请传递一个明确的本地人字典。exec()

filter(function, iterable)

从这些iterable的元素构造一个迭代器,为其功能 返回true。 iterable可以是序列,支持迭代的容器或迭代器。如果function为None,则假定为身份函数,即,将所有false 的iterable元素都删除。

请注意,如果function不是,并且function是 ,则等效于生成器表达式。filter(function, iterable)(item for item in iterable if function(item))None(item for item in iterable if item)None

请参阅itertools.filterfalse()补充函数,该函数返回iterable的元素,该函数为其返回false。

class float([x])

返回由数字或字符串x构造的浮点数。

如果参数是字符串,则应包含一个十进制数字,可以选择在其后加上一个符号,并可以选择将其嵌入空格中。可选符号可以是’+‘或’-’;一个’+'符号具有上产生的值没有影响。参数也可以是表示NaN(非数字)或正无穷大的字符串。更准确地说,删除前导和尾随空白字符后,输入必须符合以下语法:

sign           ::=  "+" | "-"
infinity       ::=  "Infinity" | "inf"
nan            ::=  "nan"
numeric_value  ::=  floatnumber | infinity | nan
numeric_string ::=  [sign] numeric_value

这floatnumber是Python浮点文字的形式,在浮点文字中进行了描述。大小写无关紧要,因此,例如,“ inf”,“ Inf”,“ INFINITY”和“ iNfINity”都是可接受的表示正无穷大的拼写。

否则,如果参数是整数或浮点数,则返回具有相同值(在Python的浮点精度内)的浮点数。如果参数超出Python浮点数的范围,OverflowError则会引发an 。

对于一般的Python对象x,请float(x)委托 x.float()。如果__float__()未定义,则返回到__index__()。

如果没有给出参数,0.0则返回。

例子:

>>>
>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

浮点类型在数值类型中进行了描述-int,float,complex。

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

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

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

format(value[, format_spec])

按照format_spec的控制,将值转换为“格式化”表示形式 。format_spec的解释将取决于value参数的类型,但是大多数内置类型都使用一种标准格式语法:Format Specification Mini-Language。

默认的format_spec是一个空字符串,通常会产生与call相同的效果str(value)。

搜索值的方法时,对的调用会转换为 绕过实例字典的调用。一 ,如果该方法搜索到达引发异常 和format_spec非空,或者这两个 format_spec或返回值是不是字符串。format(value, format_spec)type(value).format(value, format_spec)format()TypeErrorobject

在版本3.4中更改: 如果format_spec不是空字符串,则object().format(format_spec)引发。TypeError

class frozenset([iterable])

返回一个新frozenset对象,可以选择从iterable获取元素 。 frozenset是内置类。请参阅frozenset并 设置类型-set,frozenset,以获取有关此类的文档。

对于其他容器看到内置的set,list, tuple,和dict类,还有collections 模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值