Python知识点-内置函数

1.staticmethod 静态方法

class Foo:
    def __init__(self):
        pass
    def sa(x):#此处参数无self,就是个普通方法
        print(x)
    spam=staticmethod(spam) #把spam函数做成静态方法
Foo.sa()#类可以直接调用
f=Foo()#也可以实例化调用
f.sa()

#等同于在普通函数上加装饰器
class Foo:
    def __init__(self):
        pass
    @staticmethod #静态方法
    def sa(x):
        print(’装饰器形式‘)

2.__import__ 动态模块导入

__import__('xx.xx')# 以字符串形式import模块。
#推荐导入方式下面这种
import importlib
xxx=importlib.import_module('xx.xx')

3.all() 判断给定的所有迭代对象为True时返回True

4.enumerate(seq,index)遍历对象加索引,模式是0开始,可以设定index值1,从1开始

5.int(x,base=10) base 默认是10 也就是说10进制

#base传入值时x必须为字符串形式,base为当前字符串的进制,都是转换为10进制
print(int('0x12',16)) # 16进制的0X12 转换为10进制
print(int('10',8)) # 8进制的10 转换为10进制
print(int('110',2))#2进制110 转换10进制

6.ord(c) 返回对应的 ASCII 数值

ord('a') #a 所对应的ASCII码97

7.chr(c)用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。

#c可以是10进制或者16进制形式
>>>print chr(0x30), chr(0x31), chr(0x61) # 十六进制 0 1 a >>> print chr(48), chr(49), chr(97) # 十进制 0 1 a

8.hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。

>>>hex(255)
'0xff'
>>> hex(-42)
'-0x2a'
>>> hex(1L)
'0x1L'
>>> hex(12)
'0xc'
>>> type(hex(12))
<class 'str'>      # 字符串

9.oct()函数将一个整数转换成8进制字符串。

>>>oct(10)
'012'
>>> oct(20)
'024'
>>> oct(15)
'017'

10bin()返回一个整数 int 或者长整数 long int 的二进制表示。

11.eval() 函数用来执行一个字符串表达式,并返回表达式的值。

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

12.iter()函数用来生成迭代器。

13.super() 函数是用于调用父类(超类)的一个方法。

  Python 3 可以使用直接使用 super().meth(x) 代替 super(Class, self).meth(x) 

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

def bar(arg):    # 两个局部变量:arg、z
    z = 1
    print (locals())

bar(4)
{'z': 1, 'arg': 4}      # 返回一个名字/值对的字典

15.reduce() 函数会对参数序列中元素进行累积。

def add(x, y) :            # 两数相加
    return x + y

>>> reduce(add, [1,2,3,4,5])   # 计算列表和:1+2+3+4+5
15
>>> reduce(lambda x, y: x+y, [1,2,3,4,5])  # 使用 lambda 匿名函数
15

16.property 

class C(object):
    def __init__(self):
        self._x = None

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, "I'm the 'x' property.")
c=C()
print(c.setx(10),c.getx(),c.delx())

#等同于使用@property
class C(object):
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self,value):
self._x = value
@x.deleter
def x(self):
del self._x

c=C()
c.x=100
print(c.x)

17.sorted() 函数对所有可迭代的对象进行排序操作。 

  sort 与 sorted 区别:

  sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。

  list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

18.cmp(x,y) 函数用于比较2个对象,如果 x < y 返回 -1, 如果 x == y 返回 0, 如果 x > y 返回 1。

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

map(function, iterable,)
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]

20.zip()将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。 

zip([迭代对象1],[迭代对象2],...) #可以有对个参数
zip(*)反向解压
>>>a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b)     # 打包为元组的列表
[(1, 4), (2, 5), (3, 6)]
>>> zip(a,c)              # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> zip(*zipped)          # 与 zip 相反,*zipped 可理解为解压,返回二维矩阵式
[(1, 2, 3), (4, 5, 6)]

21.hash() 用于获取取一个对象(字符串或者数值等)的哈希值。

>>>hash('test')            # 字符串
2314058222102390712
>>> hash(1)                 # 数字
1
>>> hash(str([1,2,3]))      # 集合
1335416675971793195
>>> hash(str(sorted({'1':1}))) # 字典
7666464346782421378
posted @ 2018-12-17 17:48  gaoxing1  阅读(210)  评论(0编辑  收藏  举报