python 内置函数(6)

2018-09-26 18:14:23   最后更新: 2018-10-12 13:36:26   访问数量:155




getattr() 函数用于返回一个对象属性值。

 

语法

getattr 语法:

getattr(object, name[, default])

 

 

参数

  • object -- 对象。
  • name -- 字符串,对象属性。
  • default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

 

返回值

返回对象属性值。

 

实例

以下实例展示了 getattr 的使用方法:

>>>class A(object): ... bar = 1 ... >>> a = A() >>> getattr(a, 'bar') # 获取属性 bar 值 1 >>> getattr(a, 'bar2') # 属性 bar2 不存在,触发异常 Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'A' object has no attribute 'bar2' >>> getattr(a, 'bar2', 3) # 属性 bar2 不存在,但设置了默认值 3 >>>

 

 

locals() 函数会以字典类型返回当前位置的全部局部变量。

对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。

 

语法

locals() 函数语法:

locals()

 

 

参数

 

返回值

返回字典类型的局部变量。

 

实例

以下实例展示了 locals() 的使用方法:

>>>def runoob(arg): # 两个局部变量:arg、z ... z = 1 ... print (locals()) ... >>> runoob(4) {'z': 1, 'arg': 4} # 返回一个名字/值对的字典 >>>

 

 

repr() 函数将对象转化为供解释器读取的形式。

 

语法

以下是 repr() 方法的语法:

repr(object)

 

 

参数

  • object -- 对象。

返回值

返回一个对象的 string 格式。

 

实例

以下展示了使用 repr() 方法的实例:

>>>s = 'RUNOOB' >>> repr(s) "'RUNOOB'" >>> dict = {'runoob': 'runoob.com', 'google': 'google.com'}; >>> repr(dict) "{'google': 'google.com', 'runoob': 'runoob.com'}" >>>

 

 

zip() 函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。

我们可以使用 list() 转换来输出列表。

如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同,利用 * 号操作符,可以将元组解压为列表。

zip 方法在 Python 2 和 Python 3 中的不同:在 Python 2.x zip() 返回的是一个列表。

 

语法

zip 语法:

zip([iterable, ...])

 

 

参数说明:

  • iterabl -- 一个或多个迭代器;

 

返回值

返回一个对象。

 

实例

以下实例展示了 zip 的使用方法:

>>>a = [1,2,3] >>> b = [4,5,6] >>> c = [4,5,6,7,8] >>> zipped = zip(a,b) # 返回一个对象 >>> zipped <zip object at 0x103abc288> >>> list(zipped) # list() 转换为列表 [(1, 4), (2, 5), (3, 6)] >>> list(zip(a,c)) # 元素个数与最短的列表一致 [(1, 4), (2, 5), (3, 6)] >>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,*zip 可理解为解压,返回二维矩阵式 >>> list(a1) [1, 2, 3] >>> list(a2) [4, 5, 6] >>>

 

 

compile() 函数将一个字符串编译为字节代码。

 

语法

以下是 compile() 方法的语法:

compile(source, filename, mode[, flags[, dont_inherit]])

 

 

参数

  • source -- 字符串或者AST(Abstract Syntax Trees)对象。。
  • filename -- 代码文件名称,如果不是从文件读取代码则传递一些可辨认的值。
  • mode -- 指定编译代码的种类。可以指定为 exec, eval, single。
  • flags -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。。
  • flags和dont_inherit是用来控制编译源码时的标志

 

返回值

返回表达式执行结果。

 

实例

以下展示了使用 compile 函数的实例:

>>>str = "for i in range(0,10): print(i)" >>> c = compile(str,'','exec') # 编译为字节代码对象 >>> c <code object <module> at 0x10141e0b0, file "", line 1> >>> exec(c) 0 1 2 3 4 5 6 7 8 9 >>> str = "3 * 4 + 5" >>> a = compile(str,'','eval') >>> eval(a) 17

 

 

globals() 函数会以字典类型返回当前位置的全部全局变量。

 

语法

globals() 函数语法:

globals()

 

 

参数

 

返回值

返回全局变量的字典。

 

实例

以下实例展示了 globals() 的使用方法:

>>>a='runoob' >>> print(globals()) # globals 函数返回一个全局变量的字典,包括所有导入的变量。 {'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', '__doc__': None, 'a': 'runoob', '__package__': None}

 

 

map() 会根据提供的函数对指定序列做映射。

第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。

 

语法

map() 函数语法:

map(function, iterable, ...)

 

 

参数

  • function -- 函数
  • iterable -- 一个或多个序列

 

返回值

Python 2.x 返回列表。

Python 3.x 返回迭代器。

 

实例

以下实例展示了 map() 的使用方法:

>>>def square(x) : # 计算平方数 ... return x ** 2 ... >>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方 [1, 4, 9, 16, 25] >>> map(lambda x: x ** 2, [1, 2, 3, 4, 5]) # 使用 lambda 匿名函数 [1, 4, 9, 16, 25] # 提供了两个列表,对相同位置的列表数据进行相加 >>> map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]

 

 

reversed 函数返回一个反转的迭代器。

 

语法

以下是 reversed 的语法:

reversed(seq)

 

 

参数

  • seq -- 要转换的序列,可以是 tuple, string, list 或 range。

 

返回值

返回一个反转的迭代器。

 

实例

以下展示了使用 tuple 的实例:

实例

#!/usr/bin/env python3 # 字符串 seqString = 'Runoob' print(list(reversed(seqString))) # 元组 seqTuple = ('R', 'u', 'n', 'o', 'o', 'b') print(list(reversed(seqTuple))) # range seqRange = range(5, 9) print(list(reversed(seqRange))) # 列表 seqList = [1, 2, 4, 3, 5] print(list(reversed(seqList)))

 

 

以上实例输出结果为:

['b', 'o', 'o', 'n', 'u', 'R'] ['b', 'o', 'o', 'n', 'u', 'R'] [8, 7, 6, 5] [5, 3, 4, 2, 1]

 

 

__import__() 函数用于动态加载类和函数 。

如果一个模块经常变化就可以使用 __import__() 来动态载入。

 

语法

__import__ 语法:

__import__(name[, globals[, locals[, fromlist[, level]]]])

 

 

参数说明:

  • name -- 模块名

返回值

返回元组列表。

 

实例

以下实例展示了 __import__ 的使用方法:

 

a.py 文件代码:

#!/usr/bin/env python #encoding: utf-8 import os print ('在 a.py 文件中 %s' % id(os))

 

 

test.py 文件代码:

#!/usr/bin/env python #encoding: utf-8 import sys __import__('a') # 导入 a.py 模块

 

 

执行 test.py 文件,输出结果为:

在 a.py 文件中 4394716136

 

 

complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。

 

语法

complex 语法:

class complex([real[, imag]])

 

 

参数说明:

  • real -- int, long, float或字符串;
  • imag -- int, long, float;

 

返回值

返回一个复数。

 

实例

以下实例展示了 complex 的使用方法:

>>>complex(1, 2) (1 + 2j) >>> complex(1) # 数字 (1 + 0j) >>> complex("1") # 当做字符串处理 (1 + 0j) # 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错 >>> complex("1+2j") (1 + 2j)

 

 

 






读书笔记      技术帖      龙潭书斋      python      python3     


京ICP备15018585号