美文网首页
python的内置函数——2018-08-08

python的内置函数——2018-08-08

作者: 有可能_666 | 来源:发表于2018-08-14 15:32 被阅读0次

    1.setattr()函数[delattr()删除属性]
    描述:setattr函数对应函数getatt(),用于设置属性值,该属性必须存在。
    语法:
    setattr(object,name,value)
    参数:
    object -- 对象。
    name -- 字符串,对象属性。
    value -- 属性值。
    实例:


    >>>class A(object):
    ...     bar = 1
    ... 
    >>> a = A()
    >>> getattr(a, 'bar')          # 获取属性 bar 值
    1
    >>> setattr(a, 'bar', 5)       # 设置属性 bar 值
    >>> a.bar
    5
    

    2.all()函数(any()函数相反)
    描述:all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否都为 TRUE,如果是返回 True,否则返回 False。
    元素除了是 0、空、FALSE 外都算 TRUE
    语法:all(iterable)
    参数:iterable--元组或列表
    返回值
    如果iterable的所有元素不为0、''、False或者iterable为空,all(iterable)返回True,否则返回False;
    注意:空元组、空列表返回值为True,这里要特别注意。
    实例:


    >>>all(['a', 'b', 'c', 'd'])  # 列表list,元素都不为空或0
    True
    >>> all(['a', 'b', '', 'd'])   # 列表list,存在一个为空的元素
    False
    >>> all([0, 1,2, 3])          # 列表list,存在一个为0的元素
    False
    
    >>> all(('a', 'b', 'c', 'd'))  # 元组tuple,元素都不为空或0
    True
    >>> all(('a', 'b', '', 'd'))   # 元组tuple,存在一个为空的元素
    False
    >>> all((0, 1, 2, 3))          # 元组tuple,存在一个为0的元素
    False
    
    >>> all([])             # 空列表
    True
    >>> all(())             # 空元组
    True
    

    3.dir()函数
    描述:
    dir() 函数不带参数时,返回当前范围内的变量、方法和定义的类型列表;带参数时,返回参数的属性、方法列表。如果参数包含方法dir(),该方法将被调用。如果参数不包含dir(),该方法将最大限度地收集参数信息。
    语法:dir([object])
    参数说明:
    object--对象、变量、类型。
    返回值:
    返回模块的属性列表
    实例:


    >>>dir()   #  获得当前模块的属性列表
    ['__builtins__', '__doc__', '__name__', '__package__', 'arr', 'myslice']
    >>> dir([ ])    # 查看列表的方法
    ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
    

    4.next()函数
    描述:
    next()返回迭代器的下一个项目。
    语法:
    next语法:
    next(iterator[,default])
    参数说明:
    iterator --可迭代对象
    default --可选,用于设置在没有下一个元素时返回该默认值,如果不设置,又没有下一个元素则会触发 StopIteration 异常。
    返回值:
    返回对象帮助信息。
    实例:


    # 首先获得Iterator对象:
    it = iter([1, 2, 3, 4, 5])
    # 循环:
    while True:
    try:
        # 获得下一个值:
        x = next(it)
        print(x)
    except StopIteration:
        # 遇到StopIteration就退出循环
        break
    

    5.slice()函数
    描述
    slice()函数实现切片对象,主要用在切片操作函数里的参数传递。
    语法:
    class slice(stop)
    class slice(start, stop[, step])
    参数说明:
    start -- 起始位置
    stop -- 结束位置
    step -- 间距
    返回值
    返回一个切片对象。
    实例:


    >>>myslice = slice(5)    # 设置截取5个元素的切片
    >>> myslice
    slice(None, 5, None)
    >>> arr = range(10)
    >>> arr
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> arr[myslice]         # 截取 5 个元素
    [0, 1, 2, 3, 4]
    >>>
    

    6.callable()函数
    callable() 函数用于检查一个对象是否是可调用的。如果返回True,object仍然可能调用失败;但如果返回False,调用对象ojbect绝对不会成功。
    对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。
    语法:callable(object)
    参数:object -- 对象
    返回值:可调用返回 True,否则返回 False。
    实例:


    >>>callable(0)
    False
    >>> callable("runoob")
    False
    
    >>> def add(a, b):
    ...     return a + b
    ... 
    >>> callable(add)             # 函数返回 True
    True
    >>> class A:                  # 类
    ...     def method(self):
    ...             return 0
    ... 
    >>> callable(A)               # 类返回 True
    True
    >>> a = A()
      >>> callable(a)               # 没有实现 __call__, 返回 False
    False
    >>> class B:
    ...     def __call__(self):
    ...             return 0
    ... 
    >>> callable(B)
    True
    >>> b = B()
    >>> callable(b)               # 实现 __call__, 返回 True
    True
    

    7.classmethod()函数
    描述:
    classmethod 修饰符对应的函数不需要实例化,不需要self参数,但第一个参数需要是表示自身类的cls参数,可以来调用类的属性,类的方法,实例化对象等
    语法:
    classmethod
    参数:无
    返回值:返回函数的类方法

    实例:

    class A(object):
        bar = 1
        def func1(self):  
            print ('foo') 
        @classmethod
        def func2(cls):
            print ('func2')
            print (cls.bar)
            cls().func1()   # 调用 foo 方法
    
    A.func2()               # 不需要实例化
    

    8.compile()函数
    描述:
    compile()函数将一个字符串编译为字节码。
    语法:
    compile(source, filename, mode[,flags[, dont_inherit]])
    参数:

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

    >>>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
    

    9.complex()函数
    描述:complex() 函数用于创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
    语法:class complex([real[, imag]])
    参数说明:

    • real -- int, long, float或字符串;
    • imag -- int, long, float;
      返回值:返回一个复数。
      实例:

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

    10.eval()函数
    描述:eval()函数用来执行一个字符串表达式,并返回表达式的值
    语法:
    eval(expression[,globals[,locals]])
    参数:

    • expression -- 表达式。
    • globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
    • locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
      返回值:
      返回表达式的计算结果
      实例:

    >>>x = 7
    >>> eval( '3 * x' )
    21
    >>> eval('pow(2,2)')
    4
    >>> eval('2 + 2')
    4
    >>> n=81
    >>> eval("n + 4")
    85
    

    11.divmod()函数
    函数把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)。

    divmod(a, b)

    a: 数字
    b: 数字


    >>>divmod(7, 2)
    (3, 1)
    >>> divmod(8, 2)
    (4, 0)
    >>> divmod(1+2j,1+0.5j)
    ((1+0j), 1.5j)
    

    12.enumerate()函数
    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中

    enumerate(sequence, [start=0])

    • sequence -- 一个序列、迭代器或其他支持迭代对象。
    • start -- 下标起始位置

    返回 enumerate(枚举) 对象。

    实例:

    >>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
    >>>list(enumerate(seasons))
    [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
    >>>list(enumerate(seasons, start=1))       # 小标从 1 开始
    [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
    

    13.exec函数
    exec 执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
    exec(object[, globals[, locals]])

    • object:必选参数,表示需要被指定的Python代码。它必须是字符串或code对象。如果object是一个字符串,该字符串会先被解析为一组Python语句,然后在执行(除非发生语法错误)。如果object是一个code对象,那么它只是被简单的执行。
    • globals:可选参数,表示全局命名空间(存放全局变量),如果被提供,则必须是一个字典对象。
    • locals:可选参数,表示当前局部命名空间(存放局部变量),如果被提供,可以是任何映射对象。如果该参数被忽略,那么它将会取与globals相同的值。

    exec 返回值永远为 None。


    >>>exec('print("Hello World")')
    Hello World
    # 单行语句字符串
    >>> exec("print ('runoob.com')")
    runoob.com
    
    #  多行语句字符串
    >>> exec ("""for i in range(5):
    ...     print ("iter time: %d" % i)
    ... """)
    iter time: 0
    iter time: 1
    iter time: 2
    iter time: 3
    iter time: 4
    

    x = 10
    expr = """
    z = 30
    sum = x + y + z
    print(sum)
    """
    def func():
        y = 20
        exec(expr)
        exec(expr, {'x': 1, 'y': 2})
        exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4})
    
    func()
    

    14.filter()函数
    filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回一个迭代器对象,如果要转换为列表,可以使用 list() 来转换。

    该接收两个参数,第一个为函数,第二个为序列,序列的每个元素作为参数传递给函数进行判,然后返回 True 或 False,最后将返回 True 的元素放到新列表中。

    filter(function, iterable)

    • function -- 判断函数。
    • iterable -- 可迭代对象。

    def is_odd(n):
        return n % 2 == 1
    
    tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
    newlist = list(tmplist)
    print(newlist)
    输出结果 :
    
    [1, 3, 5, 7, 9]
    

    import math
    def is_sqr(x):
        return math.sqrt(x) % 1 == 0
    
    tmplist = filter(is_sqr, range(1, 101))
    newlist = list(tmplist)
    print(newlist)
    输出结果 :
    
    [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    15.hasattr()函数
    hasattr() 函数用于判断对象是否包含对应的属性。
    hasattr(object, name)

    • object -- 对象。
    • name -- 字符串,属性名。

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

    point1 = Coordinate() 
    print(hasattr(point1, 'x'))
    print(hasattr(point1, 'y'))
    print(hasattr(point1, 'z'))
    print(hasattr(point1, 'no'))  # 没有该属性
    
    True
    True
    True
    False

    相关文章

      网友评论

          本文标题:python的内置函数——2018-08-08

          本文链接:https://www.haomeiwen.com/subject/ihxxbftx.html