Python特殊函數

  • exec():執行動態的字符串代碼,和eval相似,不過eval接受表達式。函數

    • 它可接受:1.代碼字符串 2.文件對象 3.代碼對象 4.tuple spa

      >>> exec('a=2')
      >>> a
      2
      >>> exec('print(\'5\')')
      5
  • eval():接受一個字符串對象,把字符串變成一個合法的表達式code

    >>> eval('1+1')
    2
  • repr():接受一個表達式,把表達式變成字符串對象

    >>> repr(1+2)
    '3'
  • range():範圍函數blog

  • zip():返回一個迭代器,將對應的序列對應索引位置拼接成一個二元組,若序列不一樣,以短的爲主。索引

    >>> a = [1,2,3]
    >>> b = ('a','b','c')
    >>> zip(a,b)
    <zip object at 0x0000024DD98036C8>
    >>> list(zip(a,b))
    [(1, 'a'), (2, 'b'), (3, 'c')]
  • map(func, *iterables):返回一個迭代器ip

    >>> map(lambda x: x+x,[1,2,3])
    <map object at 0x00000197731BDB70>
    >>> a = map(lambda x: x+x,[1,2,3])
    >>> next(a)
    2
    >>> next(a)
    4
    >>> next(a)
    6
    >>> next(a)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    StopIteration
  • filter(function or None, iterable):過濾做用,返回一個迭代器,和列表推導式做用相同字符串

    >>> numbers = range(-5,5)
    >>> numbers
    [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4] 
    >>> filter(lambda x: x>0, numbers) 
    [1, 2, 3, 4]
    >>> [x for x in numbers if x>0]   #與上面那句等效
    [1, 2, 3, 4]
  • isinstance(obj, class_or_tuple, /):除了能夠判斷對象的類型,還能夠判斷該對象是不是該類的子類,返回值爲bool值。get

    >>> isinstance(1,str)
    False
    >>> isinstance(1,int)
    True
    class Person():
        def __init__(self):
            pass
    ​
    p = Person()
    print(isinstance(p,Person))
    True
  • enumerate(iterable[, start]):把可迭代對象的索引和值包裝成一個元組返回。it

    >>> b = list(enumerate('sedf'))
    >>> b
    [(0, 's'), (1, 'e'), (2, 'd'), (3, 'f')]
  • divmod():地板除取餘函數 //

    >>> divmod(9,4)
    (2, 1)
  • pow():冪值函數

  • getattr(object,name,default) :

    • object--對象

      name--字符串,對象屬性

      default--默認返回值,若是不提供該參數,在沒有對於屬性時,將觸發AttributeError。

    class Person():
        age = 20
        def __init__(self):
            self.name = 3
    p = Person()
    print(isinstance(p,Person))
    print(getattr(p,'name'))、
    ​
    3

 持續更...

相關文章
相關標籤/搜索