python3 内置函数(六)

compile()函数

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

    语法:compile(source, filename, mode[, flags[, don't_inherit]])

    参数:

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

    返回值:返回表达式执行结果

    python3中实例:

str = "for i in range(0,10): print(i)"
c = compile(str,'','exec')   # 编译为字节代码对象
print(c)
# 返回值<code object <module> at 0x0000020729134810, 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

map()函数

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

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

    语法:map(function, iterable, ...)

    参数:function--函数,有两个参数

                iterable--一个或多个序列

    返回值:python3.x 返回迭代器

                 python2.x 返回列表

    python3中实例:

def square(x):  #计算平方数
    return x**2
a = map(square,[1,2,3,4,5])  #计算列表各个元素的平方
b = map(lambda x:x**2, [1,2,3,4,5]) # 使用 lambda 匿名函数

# 提供了两个列表,对相同位置的列表数据进行相加
c = map(lambda x,y:x+y,[1,24,56,132,14],[7,4,8,66,88])
print(a,b,c)
# 执行结果:
# [1, 4, 9, 16, 25]
# [1, 4, 9, 16, 25]
# [8,28,64,198,102]
#

reversed函数

    描述:reversed函数返回一个反转的迭代器

    语法:reversed(seq)

    参数:seq--要转换的序列,可以是tuple,string,list或range

    返回值:返回一个反转的迭代器

    python3中实例:

# 字符串
seqString = 'taobao'
print(list(reversed(seqString)))
# 返回值['o', 'a', 'b', 'o', 'a', 't']

# range
seqRange = range(5, 9)
print(list(reversed(seqRange)))
# 返回值[8, 7, 6, 5]

# 列表
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))
#返回值 [5, 3, 4, 2, 1]


__import__()函数

    描述:__import__()函数用于动态加载类和函数

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

    语法:__import__(name[, globals[, locals[, fromlist[, level]]]])

    参数:name--模块名

    返回值:返回元组列表

    python3中实例:

# a.py 文件代码:
import os
print (' a.py 文件中 %s' % id(os))

# test.py 文件代码:
import sys
__import__('a.py')    # 导入 a.py 模块

# 执行 test.py 文件,输出结果为:
#  a.py 文件中 4394716136

comple(x)函数

    描述:complex()函数用于创建一个值为real+image*j 的复数或者转化一个字符串或数为辅助。

              如果第一个参数为字符串,则不需要指定第二个参数

    语法:class complex([real[, imag]])

    参数:real--int,long,float或str

                imag--int,long,float

    返回值:返回一个复数

    python3中实例:

a = complex(1,2)
b = complex(1)   # 数字
c = complex("1")  # 当做字符串处理

# 注意:这个地方在"+"号两边不能有空格,也就是不能写成"1 + 2j",应该是"1+2j",否则会报错
d = complex("1+2j")
print(a,b,c,d)
# 执行结果:
# (1+2j)
# (1+0j)
# (1+0j)
# (1+2j)

hasattr()函数

    描述:hasattr()函数用于判断对象是否包含对应的属性

    语法:hasattr(object, name)

    参数:object--对象; name--字符串属性,属性名

    返回值:如果对象有该属性返回True,否则返回False

    python3中实例:

class Uzi:
    x = 10
    y = -5
    z = 0
point1 = Uzi()
print(hasattr(point1, 'x'))
print(hasattr(point1, 'y'))
print(hasattr(point1, 'z'))
print(hasattr(point1, 'no'))  # 没有该属性
# 输出结果:
# True
# True
# True
# False

delattr()函数

    描述:delattr()函数用于删除属性

    语法:delattr(object, name)

    参数:object--对象;name--必须是对象的属性

    返回值:无

    python3中实例:

class MLXG:
    x = 10
    y = -5
    z = 0

point1 = MLXG()

print('x = ', point1.x)
print('y = ', point1.y)
print('z = ', point1.z)

delattr(MLXG, 'z')

print('--删除 z 属性后--')
print('x = ', point1.x)
print('y = ', point1.y)
# 触发错误
print('z = ', point1.z)

# 输出结果:
# x =  10
# Traceback (most recent call last):
# y =  -5
#   File "D:/py mysql/venv/pymyql 1/neizhiduixiang.py", line 654, in <module>
# z =  0
# --删除 z 属性后--
# x =  10
# y =  -5
#     print('z = ', point1.z)
# AttributeError: 'MLXG' object has no attribute 'z'

hash()函数

    描述:hash()用于获取一个对象(字符串或数值等)的哈希值

    语法:hash(object)

    参数:object--对象

    返回值:返回对象的哈希值

    python3中实例:

a = hash(1)     #数字
b = hash('lol')     #字符串
c = hash(str([1,2,3]))  #集合
d = hash(str(sorted({'1':1}))) # 字典
print(a,b,c,d)

# 输出结果:
# 1
# 109272398043033488
# -2758360847254395590
# -1450193307434289095

memoryview()函数

    描述:memoryview()函数返回给定参数的内存查看对象(memory view)

               所谓内存查看对象,是值对支持缓存区协议的数据进行包装,在不需要复制基础上允许python代码访问

    语法:memoryview(obj)

    参数:obj--对象

    返回值:返回元组列表

    python3中实例:

v = memoryview(bytearray("abcdef",'utf-8'))
print(v[1])
print(v[-1])
print(v[1:4])
print(v[1:4].tobytes())

# 输出结果:
# 98
# 102
# <memory at 0x000001B614352288>
# b'bcd'

set()函数

    描述:set()函数创建一个无序不重复元素集,可进行关系测试,删除重复数据,还可以计算交集、差集和并集

    语法:class set([iterable])

    参数:iterable--可迭代对象

    返回值:返回新的集合对象

    python3中实例:

x = set('taobao')
y = set('baidu')
print(x,y)
print(x & y)
print(x | y)
print(x - y)

# 输出结果:
# {'o', 'a', 't', 'b'} {'a', 'i', 'd', 'u', 'b'}
# {'a', 'b'}
# {'a', 'o', 'i', 'd', 't', 'u', 'b'}
# {'o', 't'}


    

猜你喜欢

转载自blog.csdn.net/qq_39097722/article/details/80951428