python3.7.1 内置函数

python3.7.1 内置函数列表

内置函数
abs()delattr()hash()memoryview()set()
all()dict()help()min()setattr()
any()dir()hex()next()slice()
ascii()divmod()id()object()sorted()
bin()enumrate()input()oct()staticmethod()
bool()eval()int()open()str()
breakpoint()exec()isinstance()ord()sum()
bytearray()filter()issubclass()pow()super()
bytes()float()iter()print()tuple()
callable()format()len()property()type()
chr()frozenset()list()range()vars()
classmethod()getattr()locals()repr()zip()
compile()globals()map()reversed()__import__()
complex()hasattr()max()round()

常用/分类

求值类:

  • abs(x):绝对值
  • complex([real[, imag]]):创建一个 'real + imag*j'的复数,或者转化一个字符串或者数字为复数
  • divmod(a,b):求 a/b 的商和余数
  • int([x])、int(x, base=10):整数
  • float([x]):浮点数
  • len(s):求长度
  • pow(x, y[, z]): 只有 x、y参数,返回x的y次方的值(x**y)。三个参数都有返回x的y次方除以z取模 (x**y)%z
  • round(number[, ndigits]):返回 number 四舍五入后的值。如果 ndigits 为空或者None,则返回最接近number的整数。
  • sum(iterable[, start]):计算 iterable 中所有元素和 start 的总和

真假判断:

  • all(iterable):是否全为真
  • any(iterable):是否有一个为真
  • bool(x):判断元素真假
  • callable(object):判断对象是否可以调用
  • hasattr():判断是否具有某属性值
  • isinstance(object,classinfo):判断object是不是classinfo的直接、间接或者子类的实例
  • issubclass(class, classinfo):判断 class 是否是 classinfo 直接、间接或者虚拟的子类

进制转换:

  • bin(x):二进制。 '0b'
  • hex(x):十六进制。 '0x'
  • oct(x):八进制。 '0o'

编码字节:

  • bytearray([source[,encoding[,errors]]]):可变字节数组
  • bytes([source[, encoding[, errors]]]):不可变字节对象
  • chr(i):把一个整数转换为Unicode编码表中对应的字符。
  • ord(c):返回一个Unicode字符串的整数编号位置。
  • repr(object):将 object 转换为可供解释器读取的字符串形式。

类相关:

  • @classmethod:把类中的一个方法转换为类方法,使得它可以在不实例化的情况下调用。
  • delattr(object,name):删除object中名称为 name 属性
  • getattr(object, name[, default]):获取属性值
  • hasattr(object, name):判断是否具有某属性值
  • setattr(object, name, value):如果object允许,函数将会把value赋值给name。
  • isinstance(object,classinfo):判断object是不是classinfo的直接、间接或者子类的实例
  • issubclass(class, classinfo):判断 class 是否是 classinfo 直接、间接或者虚拟的子类
  • property(fget=None, fset=None, fdel=None, doc=None):将类中的方法像类属性一样调用,规范化的访问类的属性和修改类属性的值的一种方法
  • @staticmethod:将类中的一个方法转换为静态方法。
  • super([type[, object-or-type]]):在子类内调用父类的方法
  • type(object)、type(name, bases, dict):一个参数,返回对象的类型。三个参数,返回一个新的类型对象。
  • __import__(name, globals=None, locals=None, fromlist=(), level=0):用于动态的加载类和函数

字符串的执行:

  • compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1):编译一段字符串/字节字符串/AST对象,通过exec或者eval或者single执行
  • eval(expression, globals=None, locals=None):获取表达式 expression 的值
  • exec(object[, globals[, locals]]):执行 object 代码块

类型/对象:

  • dict(**kwarg)、dict(mapping, **kwarg)、dict(iterable, **kwarg):创建一个字典。
  • frozenset([iterable]):生成一个冻结的集合。
  • list([iterable]):将元组或者字符串转换为列表。
  • set([iterable]):创建一个set对象。
  • str(object='')、str(object=b'', encoding='utf-8', errors='strict'):把一个对象转换为 str。
  • tuple([iterable]):把 iterable 转换为一个元组。
  • iter(object[, sentinel]):用于生成一个迭代器。
  • range(stop),range(start,stop[,step]):返回一个可迭代对象。
  • memoryview(obj):根据传入的对象创建一个内存查看对象。
  • open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None):打开文件并返回响应的文件对象。
  • reversed(seq):返回一个反向的迭代器

其他1:

  • filter(function, iterable):通过指定函数过滤迭代器内的元素并返回一个新的迭代对象
  • map(function, iterable, ...):把一个迭代器内的元素或多个迭代器内同一位置的元素,带入 function 内执行,返回一个结果的迭代器。(多个迭代器,以最短的为标准)
  • max(iterable, [, key, default])、max(arg1, arg2, args[, key]):返回 iterable 内或 arg1、arg2...中的最大项。iterable 为空返回 default。 key 不为空时,以key指定的函数为标准。根据ord()获取对应字符串在ASCII中的位置来比较大小
  • min(iterable, [, key, default])、min(arg1, arg2, args[, key]):返回 iterable 内或 arg1、arg2...中的最小项。iterable 为空返回 default。 key 不为空时,以key指定的函数为标准。根据ord()获取对应字符串在ASCII中的位置来比较大小
  • sorted(iterable, *, key=None, reverse=False):对iterable进行排序操作。指定了key,把iterable内的元素逐个带入函数内,并根据返回的值的排序来对iterable进行排序

其他2:

  • locals():当前环境的局部变量
  • globals():获取当前环境的全局变量字典
  • vars([object]):返回带有__dict__属性的模块、类、实例或任何其他对象的__dict__属性。
  • dir([object]):获取 object 的方法、属性列表

其他3:

  • enumerate(iterable, start=0):获取可迭代对象内元素以 start 开头的序列和元素值的元组。
  • format(value[,format_spec]):字符串格式化
  • hash(object):获取某个对象的哈希值
  • help([object]):获取帮助信息
  • id(object):获取对象的内存标识
  • input([prompt]):获取一个标准输入
  • ascii(object):返回可打印对象的字符串表示形式
  • breakpoint(*args, **kws):断点调试
  • object:所有类的基类,具有所有python类都通用的方法。
  • print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False):将对象打印到文本流文件中,以sep分隔,以end结尾。sep、end、file和flush如果存在,必须作为关键字参数给出。
  • slice(stop)、slice(start, stop[, step]):返回一个切片对象。
  • zip(*iterables):将可迭代的对象作为参数,将各个对象中对应索引位置的元素打包成一个个元组,然后返回由这些元组组成的对象。如果给定的可迭代对象长度不等,则以最短的迭代对象为准。

abs(x)

描述

返回一个数字的绝对值。参数可以是整数或浮点数。如果参数是复数,则返回其大小。

参数

  • x:整数、浮点数、复数

返回值

返回数字的绝对值

示例

>>> abs(22)      #整数
22
>>> abs(22.33)   #浮点数
22.33
>>> abs(1+1.0j)  #复数
1.4142135623730951

all(iterable)

描述

判断给定的可迭代对象内所有元素是否都为真。如果都为真,则返回True,反之则返回False。(当可迭代对象为空时,返回值为True)
函数等价于:

def all(iterable):
    for element in iterable:
        if not element:
            return False
    return True

参数

  • iterable:可迭代对象,如:列表、元组

返回值

True或False

示例

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

any(iterable)

描述

判定给定的可迭代对象内的元素是否有一个为真。如果有一个为真,则返回True,反之则返回False。(当可迭代对象为空时,返回值为False

函数等价于:

def any(iterable):
    for element in iterable:
        if element:
            return True
    return False

参数

  • iterable:可迭代对象,如:列表、元组

返回值

True或False

示例

>>> any(['a','b','c'])         #列表,元素都为True
True
>>> any(['a','b','c',''])      #列表,元素存在一个为空
True
>>> any(['',0,None])           #列表,元素都为False
False
>>> any(('a','b','c'))         #元组,元素都为True
True
>>> any(('a','b','c',''))      #元组,元素存在一个为空
True
>>> any(('',0,None))           #元组,元素都为False
False 
>>> any([])                    #空列表
False
>>> any(())                    #空元组
False

ascii(object)

描述

返回一个可打印对象的字符串表示方式,如果是非ascii字符就输出\x,\u或\U等字符。

参数

  • object:可打印对象

返回值

字符串

示例

>>> ascii(1111)                      #数字
'1111'
>>> ascii('aaaaaa')                  #字符串
"'aaaaaa'" 
>>> ascii([1,2,3])                   #列表
'[1, 2, 3]' 
>>> ascii({'a':1,'b':2})             #字典
"{'a': 1, 'b': 2}"
>>> ascii('十万伏特')                 #非ascii字符
"'\\u5341\\u4e07\\u4f0f\\u7279'"

bin(x)

描述

把一个整数转换为以 0b 开头的二进制

参数

  • x:整数

返回值

二进制

示例

>>> bin(22)
'0b10110'
>>> bin(-33)
'-0b100001'

class bool([X])

描述

将给定的指定参数转换为布尔类型(True或者False),可用来判定一个元素的真假。如果参数为空则返回False。bool是int的一个子类。

参数

  • x:需要进行转换的参数

返回值

True或False

示例

>>> bool(1)
True
>>> bool('aa')
True
>>> bool([1,2])
True
>>> bool((1,2))
True
>>> bool({'a':1})
True
>>> bool()
False
>>> bool('')
False
>>> bool(None)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> issubclass(bool,int)      #判读bool是否是int的子类
True

breakpoint(*args, **kws)

描述

在未设置 PYTHONBREAKPOINT 的情况下,breakpoint() 会中断当前程序并进入 pdb 调试器。用于断点调试。

示例

>\#!/usr/bin/env python3
>\# _*_ coding:utf-8 _*_
>\# Created by fjg on 2018/10/25
>def guess_num(num_guess: str) -> str:
>    user_guess: str = input("猜想的数字:")
>    breakpoint()
>    if user_guess == num_guess:
>        return "猜对了"
>    else:
>        return "猜错了"
>
>
>if __name__ == '__main__':
>    right_num: int = 555
>    print(guess_num(right_num))

执行结果

E:\dev\lye\venv\Scripts\python.exe E:/dev/lye/test/test_breakpoint.py
猜想的数字:111
> e:\dev\lye\test\test_breakpoint.py(7)guess_num()
-> if user_guess == num_guess:
(Pdb) locals()
{'num_guess': 555, 'user_guess': '111'}
(Pdb)

calss bytearray([source[,encoding[,errors]]])

描述

返回一个可变的字节数组。数组内每个元素的范围:0<=x<256

参数

  • x:
    • 整数:返回一个长度为source的初始化数组
    • 字符串:如果是字符串,必须给定一个编码方式(encoding参数)。bytearray将使用str.endcode()把字符串转换为字节。
    • 可迭代类型:可迭代的类型中的元素必须为[0,255]中的整数
    • 空:初始化一个有0个元素的数组
    • 如果source为与buffer接口一直的对象,则此对象可用于初始化bytearray
  • encoding:编码格式
  • errors:指定如何处理编码和解码错误

返回值

一个可变的字节数组

示例

>>> bytearray(10)  # 整数
bytearray(b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00')
>>> bytearray("python",'utf-8')  # 字符串
bytearray(b'python')
>>> bytearray([1,2,3])  # 可迭代类型,元素为[0,255]中的整数
bytearray(b'\x01\x02\x03')
>>> bytearray(["1",2,3])  # 可迭代类型,元素中有个字符串,就报错了
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: an integer is required
>>> bytearray()  # 空
bytearray(b'')

class bytes([source[, encoding[, errors]]])

描述

返回一个新的bytes对象,该对象是一个0<=x<256区间内的整数不可变数列。它是bytearray的不可变版本。

参数

参照bytearray()

返回值

返回一个新的bytes对象

示例

>>> bytes(10)
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
>>> bytes('python','utf-8')
b'python'
>>> bytes([1,2,3])
b'\x01\x02\x03'
>>> bytes(["1",2,3])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'str' object cannot be interpreted as an integer
>>> bytes()
b''

callable(object)

描述

如果对象参数是可调用的返回True,反之则返回False。如果返回True,这个对象有可能还会调用失败,如果返回False,则一定不可能被调用成功。如果这个对象具有__call__()方法,它都会返回True.

参数

  • object:一个对象

返回值

True或False

示例

>>> callable(0)
False
>>> callable('python')
False
>>> def add(a,b):
...     return a+b
    ... 
>>> callable(add)
    True
>>> class A:
...     def add(self):
...         return 0
...
>>> callable(A)
True
>>> a = A()
>>> callable(a)
False
>>> class B:
...     def __call__(self):
...         return 0
...
>>> b = B()
>>> callable(B)
True
>>> callable(b)
True

chr(i)

描述

返回其Unicode编码位是整数i字符的字符串,i 的有效值范围为[0,1114112].超过这个范围则会抛出 ValueError

参数

  • i:[0,1114112],可以是十进制也可以是十六进制

示例

>>> chr(0)
'\x00'
>>> chr(97)
'a'
>>> chr(48)   # 十进制
'0'
>>> chr(1114111)  # 可取的最大值
'\U0010ffff'
>>> chr(1114112)  # 超出取值范围
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: chr() arg not in range(0x110000)
>>> chr(0x00)
'\x00'
>>> chr(0x61)
'a'
>>> chr(0x30)   # 十六进制
'0'

@classmethod

描述

将一个方法转换为类方法的装饰器。可以在不实例化一个类的前提下,调用这个方法(可以在类上面调用,也可以在实例上面调用)。在类下面的该方法不需要self参数,但是第一个参数需要是表示自身类的cls参数,可以用来调用类的属性,方法,实例化对象等。

返回值

返回该函数的类方法。

示例

>>> class A(object):
...     aa = 1
...     def func1(self):
...         print('this is func1')
...     @classmethod
...     def func2(cls):
...         print('this is func2')
...         print(cls.aa)  # 调用类属性
...         cls().func1()  # 利用cls实例化A并调用func1方法
...
>>> A.func2()  # 在类上面调用
this is func2
1
this is func1
>>> A().func2()  # 在实例上调用
this is func2
1
this is func1

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

描述

source 编译为代码或者AST对象。代码可以通过exec()或者eval()执行。

参数

  • source: source 可以是普通的字符串、字节字符串或者AST对象。
  • filename: filename 参数应该是可以读取代码的文件位置。如果没有从文件中读取代码,则需要传递一些可识别的参数(通常是给 "" 空的字符串 )
  • mode: mode 指定代码的编译种类。如果是一系列流程语句,可以使用 'exec';如果是单个表达式,可以使用'eval';如果是一个交互式语句,则可以使用 'single'
  • optimize:指定编译器的优化级别,默认值-1选择的解释器的优化级别为-O选项。具体级别有:0(无优化,__debug__为true),1(移除断言,__debug__为false)或2(移除文档字符串)。

示例

>>> str1='for i in range(5):print(i)'
>>> a1 = compile(str1,'','exec')  # 流程语句
>>> a1
<code object <module> at 0x041224F0, file "", line 1>
>>> exec(a1)
0
1
2
3
4
>>> str2 = "1*4+2*3"
>>> a2 = compile(str2,'','eval')  # 表达式
>>> a2
<code object <module> at 0x04162860, file "", line 1>
>>> exec(a2)
>>> eval(a2)
10
>>> str3="bb3 = input('输入')"
>>> a3 = compile(str3,'','single')  # 交互式语句
>>> a3
<code object <module> at 0x04122F40, file "", line 1>
>>> exec(a3)
输入>? python
>>> print(bb3)
python

class complex([real[, imag]])

描述

用于创建一个 real+imag*j 的复数或者转化一个字符串或者数字为复数。如果第一个参数为字符串,则不需要指定第二个参数。第二个参数绝对不可以是字符串。每个参数可以是任何数字类型(包括复数)。
注意: 当转化字符串时,在 + 或者 - 两侧不能有空格,否则会抛出 ValueError的异常。

参数

  • real: 整数、浮点数、字符串。
  • imag: 整数、浮点数

返回值

一个复数

示例

>>> complex()
0j
>>> complex(1,2)
(1+2j)
>>> complex(1.1,2.2)
(1.1+2.2j)
>>> complex("1")
(1+0j)
>>> complex("1+2j")
(1+2j)
>>> complex("1 + 2j")  # +  周围有空格 报错。
Traceback (most recent call last):
  File "<input>", line 1, in <module>
ValueError: complex() arg is a malformed string

delattr(object, name)

描述

setattr() 相对。参数是一个对象和一个字符串。字符串必须是对象属性中的一个名字,如果对象允许,delattr将删除该名称的属性。

参数

  • object: 对象
  • name: 必须是对象属性的名称

示例

>>> class A(object):
...     a = 1
...     b = 2
...     c = 3
...     
>>> aa = A()
>>> aa.a
1
>>> aa.b
2
>>> aa.c
3
>>> delattr(A,"b")
>>> aa.a
1
>>> aa.b
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'A' object has no attribute 'b'
>>> aa.c
3

class dict(**kwarg)、class dict(mapping, **kwarg)、class dict(iterable, **kwarg)

描述

用于创建一个字典

参数

  • **kwarg: 关键字
  • mapping: 元素的容器
  • iterable: 可迭代对象

返回值

一个字典

示例

>>> dict()
{}
>>> dict(a=1,b=2,c=3)
{'a': 1, 'b': 2, 'c': 3}
>>> dict([('a',1),('b',2),('c',3)])
{'a': 1, 'b': 2, 'c': 3}
>>> dict(zip(['a','b','c'],[1,2,3]))
{'a': 1, 'b': 2, 'c': 3}

dir([object])

描述

如果不带参数,则返回当前范围内的变量、方法和定义的类型列表。带参数时,返回参数的有效属性列表(属性、方法)。如果对象带有 **__dir__()方法,则该方法将会被调用,并且一定返回一个有效属性列表。对象允许通过__getattr__()或者__getattribute__()函数来自定义 dir()** 的内容。
当对象不提供__dir__()方法时,并且定义了__dict__()属性,函数将试着通过对象的__dict__()及其类型对象中尽可能的获取信息。结果列表可能不完整,并且当对象拥有__getattr__()属性时,可能不准确。

参数

dir() 对不同的对象类型有不同的处理机制。 它试图展示最相关的信息而不是最完整的。

  • 如果对象是一个模块对象,则列表包含这个模块的名称。
  • 如果对象是一个类或者类对象,则列表包含其属性名称和它的基础属性。
  • 否则,列表包含对象的属性名、类的属性名以及类的基类的属性的递归名称。

返回值

一个列表

示例

>>> import struct
>>> dir()   
['__builtins__', '__name__', 'struct']
>>> dir(struct)
['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
     '__initializing__', '__loader__', '__name__', '__package__',
 '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
 'unpack', 'unpack_from']
>>> class Shape:
...     def __dir__(self):
...         return ['area', 'perimeter', 'location']
>>> s = Shape()
>>> dir(s)
['area', 'location', 'perimeter']

divmod(a,b)

描述

将两个(非复数)数字作为参数,并在使用整数除法时返回由它们的商和余数组成的一对数字。

参数

  • a,b:a和b可以为整数或者浮点数,不能为复数

返回值

一个商和余数的元组

示例

>>> divmod(1,2)   # 整数
(0, 1)
>>> divmod(0.3,0.2)  # 浮点数
(1.0, 0.09999999999999998)
>>> divmod(0.3,0.4)
(0.0, 0.3)
>>> divmod(1+2j,1+0.5j)  # 复数报错
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: can't take floor or mod of complex number.
>>> a = divmod(1,2)
>>> type(a)  # 返回的是一个元组
<class 'tuple'>

enumerate(iterable, start=0)

描述

enumerate()返回的迭代器的__next__()方法返回一个元组,该元组包含一个计数(从默认值为0的开始)和通过iterable进行迭代获得的值。
该函数等同于:

def enumerate(sequence, start=0):
    n = start
    for elem in sequence:
        yield n, elem
        n += 1

参数

  • iterable: 必须是序列、迭代器或者是其他可迭代的对象。
  • start: 计数器开始的数值。整数

返回值

返回一个enumerate对象

示例

>>> a = ['a','b','c','d']
>>> list(enumerate(a,start=0))
[(0, 'a'), (1, 'b'), (2, 'c'), (3, 'd')]
>>> list(enumerate(a,start=1))
[(1, 'a'), (2, 'b'), (3, 'c'), (4, 'd')]

eval(expression, globals=None, locals=None)

描述

执行一段字符串表达式,并返回表达式的值,解析expression参数并作为一个python表达式进行计算。

参数

  • expression: 一个字符串表达式
  • globals: 全局命名空间,如果提供,则必须是一个字典对象。指定全局变量
  • locals: 局部命名空间,如果提供,可以是任何映射对象。指定局部变量

返回值

返回字符串表达式计算的结果

示例

请注意提供不同参数,变量调用的差异。

>>> a = 1
>>> eval('a+1')  # 不提供 globals和locals
2
>>> a = 1
>>> g={'a':11}
>>> eval('a+1',g)  # 提供 globals,不提供locals
12
>>> a = 1 
>>> g = {'a':11}
>>> l = {'a':111}
>>> eval('a+1',g,l) # 同时提供globals和locals
112

exec(object[, globals[, locals]])

描述

用于python代码的动态执行

参数

  • object: 必须是字符串或者代码对象。如果是字符串,则字符串会被解析为一段python代码并执行,除非它出现语法错误。如果它是代码对象,则直接执行它。
  • globals: 可选参数。指定全局变量,必须是一个字典。
  • locals: 可选参数。指定局部变量,它可以是任何映射类型。

返回值

永远为None。

示例

>>> a = 1
>>> exec("a=11")
>>> a
11
>>> a = 1
>>> b = 2
>>> g = {'a':11,'b':22}
>>> exec("global a;print(a,b)",g)
11 22
>>> a = 1
>>> b = 2
>>> c = 3
>>> g = {'a':11,'b':22}
>>> l = {'b':222,'c':33}
>>> exec("global a;print(a,b,c)",g,l)
11 222 33

filter(function, iterable)

描述

iterable 中的元素逐个传入 function 内,将所有返回值为True的元素重新构建一个迭代器对象。可以通过list()把返回的迭代器对象转换为列表

参数

  • function: 判断函数
  • iterable:序列、支持迭代的容器或者迭代器

返回值

返回一个迭代器对象

示例

>>> def get_odd(x):
...     return x % 2 == 1
... 
>>> odd_list = filter(get_odd,[1,2,3,4,5,6,7,8,9,10])
>>> type(odd_list)
    <class 'filter'>
>>> print(odd_list)
<filter object at 0x045D94B0>
>>> list(odd_list)
[1, 3, 5, 7, 9]

class float([x])

描述

返回由字符串或者数字 x 构成的浮点数。

参数

  • x:数字或者字符串

返回值

浮点数

示例

>>> float('+1.23')
1.23
>>> float('   -12345\n')
-12345.0
>>> float('1e-003')
0.001
>>> float('+1E6')
1000000.0
>>> float('-Infinity')
-inf

format(value[,format_spec])

描述

字符串格式化
参考博客:字符串

class frozenset([iterable])

描述

使用iterable内的元素生成一个冻结的集合,该集合不能添加和删除元素。

参数

  • iterabel:可迭代的对象。如列表、元组、字典等

返回值

一个新的frozenset对象。

示例

>>> a = frozenset(range(10))
>>> type(a)
<class 'frozenset'>
>>> a
frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})
>>> b = frozenset('hello world')
>>> b
frozenset({'l', 'o', 'h', 'e', 'w', 'r', 'd', ' '})

getattr(object, name[, default])

描述

返回 object 对象 name 属性的值。

参数

  • object:对象
  • name: name必须是一个字符串,如果字符串是对象属性名称之一,则返回该对象的值。如果指定的对象不存在则返回 default 的值。否则引发 AttributeError 报错。
  • default: 默认返回值,如果不提供。在没有对应属性值时,会触发AttributeError.

返回值

返回对象的属性值

示例

>>> class A(object):
...     a = 1
...     
>>> aa = A()
>>> getattr(aa,'a')
    1
>>> getattr(aa,'b')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'A' object has no attribute 'b'
>>> getattr(aa,'b',2)
2

globals()

描述

返回当前环境的全局变量的字典。

返回值

所有全局变量的字典

示例

>>> globals()
{'__builtins__': {'__name__': 'builtins', '__package__': '', '__loader__': <class   '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>), '__build_class__': <built-in function __build_class__>, '__import__': <bound method ImportHookManager.do_import of <module '_pydev_bundle.pydev_import_hook.import_hook'>>, 'abs': <built-in function abs>, 'all': <built-in function all>, 'any': <built-in function any>, 
......省略......
'bin': <built-in function bin>, 'breakpoint': <built-in function breakpoint>, 'callable': <built-in function callable>, 'chr': <built-in function chr>, 'compile': <built-in function compile>, 'delattr': <built-in function delattr>, 'dir': <built-in function dir>, 'divmod': <built-in function divmod>, 'eval': <built-in function eval>, 'exec': <built-in function exec>,}, 'sys': <module 'sys' (built-in)>}

hasattr(object, name)

描述

判断 name 是不是 object 属性之一,如果是则返回True,否则返回False

参数

  • object: 对象
  • name: 要判断的属性名,字符串

返回值

True或False

示例

>>> class A(object):
...     a = 1
...     b = 2
...     def c(self):
...         return 0
...     
>>> hasattr(A,'a')
True
>>> hasattr(A,'b')
True
>>> hasattr(A,'c')
True
>>> hasattr(A,'d')
False

hash(object)

描述

用于获取一个对象的哈希值(如果有的话),如果是数字的话,等值的数字的哈希值是一致的。如:1.0和1 尽管它们属于不同的类型。

参数

  • object:对象

返回值

对象的哈希值

示例

>>> hash(1)
1
>>> hash('python')
1817897009
>>> hash([1,2,3])
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> hash(str([1,2,3]))
-970184530
>>> hash(str({'a':1,'b':2}))
1261408225

help([object])

描述

调用内置的帮助系统。

参数

对象。如果参数是字符串,那么将查找该字符串作为模块、函数、类、方法、关键字或文档主题的名称,并在控制台打印帮助页面。如果参数是任何其他类型的对象,就会生成对象上的帮助页面。如果没有参数,将启动一个帮助控制台。

返回值

返回对象的帮助信息,或者进入帮助控制台

示例

>>> help()

Welcome to Python 3.7's help utility!

...省略...
help> q
>>> help('sys')
Help on built-in module sys:

NAME
    sys

MODULE REFERENCE
    https://docs.python.org/3.7/library/sys
...省略...
>>> a = [1,2,3]
>>> help(a.append)
Help on built-in function append:

append(object, /) method of builtins.list instance
    Append object to the end of the list.

hex(x)

描述

把一个整数转换为以'0x'开头的小写十六进制字符串。如果 x 不是一个整数对象,它必须定义一个返回整数的 index() 方法。

参数

十进制整数

返回值

十六进制字符串

示例

>>> hex(233)
'0xe9'
>>> hex(-233)
'-0xe9'
>>> type(hex(28))
<class 'str'>

id(object)

描述

返回对象的内存标识,也就是所谓的内存地址。

参数

对象

返回值

对象的内存地址

示例

>>> a = 1
>>> id(a)
257017984
>>> b = a
>>> id(b)
257017984
>>> class A(object):
...     a = 11
...     b = 22
...     
>>> c = A()
>>> id(c)
72534064

input([prompt])

描述

接收一个标准数据输入,返回值为字符串。如果存在 prompt ,则会获取一个标准输入,并去掉行位的换行符。

参数

提示信息

返回值

字符串

示例

>>> a = input('num:')
num:>? 111
>>> type(a)
<class 'str'>

class int([x])、class int(x, base=10)

描述

返回由数字或字符串x构造的整数对象,如果没有给出参数,则返回0。如果 x 定义了 int(),则 int(x) 返回 **x.__int__()** . 如果 x 定义了 trunc(), 则返回 **x.__trunc__()**。对于浮点数,将直接忽略小数点后面的数字。
如果x不是一个数字或者给了base参数,则x必须是一个字符串、bytes或bytearray实例。

参数

  • x:字符串或者数字
  • base:进制数,默认是十进制。如果带有base参数,则x必须是字符串。

返回值

返回一个整型数据

示例

>>> int()
0
>>> int(3)
3
>>> int(1.9)
1
>>> int('12',16)
18
>>> int(12,16)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: int() can't convert non-string with explicit base

isinstance(object, classinfo)

描述

如果 objectclassinfo 参数的实例,或者其直接、间接或虚拟子类的实例,则返回true。如果对象不是给定类型的对象,则返回false。如果classinfo是类型对象的元组(或者递归地,其他的元组),如果object是其中任何一个类型的实例,返回true。如果classinfo不是类型或类型的元组,那么就会 TypeError 错误异常。

参数

  • object:实例对象。
  • classinfo:可以是直接或间接类名、基本类型或者由他们组成的元组。常见的classinfo:int、float、bool、complex、str、list、dict、set、tuple

返回值

True或者False

示例

>>> a = 1
>>> isinstance(a,str)
False
>>> isinstance(a,int)
True
>>> isinstance(a,(int,str))
True
>>> class A(object):
...     pass
... 
>>> class B(A):
...     pass
... 
>>> isinstance(A(),A)
True
>>> isinstance(B(),A)
True

issubclass(class, classinfo)

描述

如果class是classinfo直接、间接或者虚拟的子类,则返回True,反之则返回False。class被认为是class自己的子类。classinfo可以是一个元组,如果class是元组其中之一的子类则返回True,反之则为False。

参数

  • class:类
  • classinfo:类或者类的元组

返回值

True或False

示例

>>> class A(object):
...     pass
... 
>>> class B(A):  # B继承A
...     pass
... 
>>> class C(B):  # C继承B
...     pass
... 
>>> class D(object):
...     pass
... 
>>> class E(object):
...     pass
...
>>> issubclass(A,A)  # A是自己的子类
True
>>> issubclass(B,A)  # B是A的子类
True
>>> issubclass(C,A)  # C也是A的子类
True
>>> issubclass(C,D)  # C不是D的子类
False
>>> issubclass(C,(A,B))  # C是A和B的子类
True
>>> issubclass(C,(A,B,D))  
True
>>> issubclass(C,(D,E))  # C不是D和E的子类
False

iter(object[, sentinel])

描述

用来生成迭代器

参数

  • object:应是一个容器,支持迭代协议(即定义有__iter__()函数),或者支持序列访问协议(即定义有__getitem__()函数),否则会返回TypeError异常。
  • sentinel:当第二个参数sentinel出现时,参数callable应是一个可调用对象(实例),即定义了__call__()方法,当枚举到的值等于哨兵时,就会抛出异常StopIteration。

返回值

返回一个迭代器对象。

示例

无第二参数:

>>> a = [1, 2, 3, 4, 5]
>>> for i in iter(a):
...     print(i)
...     
1
2
3
4
5

有第二参数

class TestIter(object):

    def __init__(self):
        self.l = [1, 2, 4, 5, 'a', 6, 7, 8]
        self.i = iter(self.l)

    def __call__(self):  # 定义了__call__方法的类的实例是可调用的
        item = next(self.i)
        print("__call__ is called,which would return", item)
        return item

    def __iter__(self):  # 支持迭代协议(即定义有__iter__()函数)
        print("__iter__ is called!!")
        return iter(self.l)


t = TestIter()  # t是可调用的
t1 = iter(t, 'a')  # t必须是callable的,否则无法返回callable_iterator
print(callable(t))
for i in t1:
    print(i)

输出结果

True
__call__ is called,which would return 1
1
__call__ is called,which would return 2
2
__call__ is called,which would return 4
4
__call__ is called,which would return 5
5
__call__ is called,which would return a

Process finished with exit code 0

len(s)

描述

返回对象的长度(项的数量)

参数

参数可以是序列(例如字符串、字节、元组、列表或范围)或集合(例如字典、集合或冻结集合)。

返回值

对象的长度

示例

>>> len('python')
6
>>> len([1,2,3,4,5])
5

class list([iterable])

描述

用于将元组或字符串转换为列表

参数

元组或字符串

返回值

一个列表

示例

>>> a = 'python'
>>> list(a)
['p', 'y', 't', 'h', 'o', 'n']
>>> b = (1,2,3,4,5)
>>> list(b)
[1, 2, 3, 4, 5]

locals()

描述

以字典的方式返回当前所在位置的全部局部变量,

参数

返回值

局部变量的字典

示例

>>> def A(b):
...     a = 1
...     print(locals())
...     
>>> A(2)
{'b': 2, 'a': 1}

map(function, iterable, ...)

描述

iterable 内的元素逐个带入到 function 内,然后把得到的结果放入一个迭代器内返回。如果传入了多个 iterable 则会按照序列把每个 iterable 内的相同位置的元素同时传入 function 内执行。直到最短的那个 iterable 执行完成。

参数

  • function:函数
  • iterable:一个或多个迭代器

返回值

迭代器

示例

>>> def A(x):
...     return x ** 2
... 
>>> a = map(A,[1,2,3,4])  # 单个迭代器
>>> type(a)
<class 'map'>
>>> a
<map object at 0x03C88470>
>>> list(a)
[1, 4, 9, 16]
>>> b = map(lambda x: x ** 2,[1,2,3,4])   # 使用匿名函数
>>> list(b)
[1, 4, 9, 16]
>>> c = map(lambda x ,y: x + y,[1,2,3,4],[1,2,3,4,5,6,7])  # 同时传入两个迭代器,最短的取完元素就结束了。
>>> list(c)
[2, 4, 6, 8]

max(iterable, *[, key, default])、max(arg1, arg2, *args[, key])

描述

返回可迭代对象 iterable 或者两个或多个参数arg1,arg2... 中最大的项。如果只有一个参数,那么它必须是可迭代的对象,并返回其中最大的项。如果提供了两个或多个参数,则返回这些参数中最大的参数。如果 iterable 为空,默认参数指定要返回的对象。如果 iterable 为空且没有提供默认值,则会引发 ValueError 。根据ord()获取对应字符串在ASCII中的位置来比较大小。

参数

  • iterable:可迭代对象。
  • key:当key不为空时,以key的函数对象作为比较的标准

返回值

返回给定参数的最大值

示例

>>> a = range(10)
>>> max(a)
9
>>> b = 'python'
>>> max(b)
'y'
>>> max(a, key=lambda x: x > 3)
4
>>> max(1, 4, 5, 7, 8, 0, 5, 54, 65, 7)
65
>>> max('an', 'bg', key=lambda x: x[1])
'an'
>>> c = range(0, 10, 2)
>>> max(a, c, key=lambda x: x[1])
range(0, 10, 2)
>>> def A(x):
...     return x[2]
... 
>>> max('an1','bg9',key=A)
'bg9'

memoryview(obj)

描述

根据传入的对象创建一个内存查看对象。所谓的内存查看对象,是指对支持缓冲区协议的数据进行包装,使它在不需要复制对象的基础上允许python代码访问。

参数

obj必须支持缓存协议。支持缓存协议的内置对象包括 bytesbytearray

返回值

memoryview对象

示例

>> a = b'python'
>>> b = bytearray('python','utf-8')
>>> aa = memoryview(a)
>>> bb = memoryview(b)
>>> aa[1]
121
>>> bb[1]
121
>>> aa[:3]
<memory at 0x046B7B90>
>>> bb[:3]
<memory at 0x046B7AC0>
>>> aa.readonly
True
>>> bb.readonly
False
>>> aa[:3].tobytes()
b'pyt'
>>> bb[:3].tobytes()
b'pyt'

min(iterable, *[, key, default])、min(arg1, arg2, *args[, key])

与max是相对的。

next(iterator[, default])

描述

通过调用 iterable 的__next__()方法从迭代器中检索下一个项目。如果给定 default ,那么当迭代器耗尽时,返回该值,否则将引发 StopIteration 错误。

参数

  • iterable:可迭代对象
  • default:当迭代器耗尽时的默认值

返回值

迭代器中的元素

示例

>>> a = iter([1,2,3,4,5])
>>> while True:
...     try:
...         b = next(a)
...         print(b)
...     except StopIteration:
...         break
...         
1
2
3
4
5

class object

描述

object是所有类的基类,它具有所有python类都通用的方法。这个函数不接受任何参数。

oct(x)

描述

将整数转换为以“0o”开头的八进制字符串。如果 x 不会一个int对象,那它必须定义有一个返回整数的 index() 方法。

参数

整数

返回值

以"0o"开头的八进制字符串

示例

>>> oct(10)
'0o12'
>>> oct(111)
'0o157'
>>> class A(object):
...     def __index__(self):
...         return 10
...     
>>> aa = A()
>>> oct(aa)
'0o12'

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

描述

打开文件并返回响应的文件对象。如果文件无法打开,则返回一个 OSError 错误。

参数

  • file:文件的位置。文件的绝对路径或者相对于当前工作目录的相对路径。
  • mode:文件的打开模式。
    • r:只读模式,文件指针会在放在文件的开头。
    • t:文本模式(默认)
    • x:写模式,新加你一个文件,如果文件存在则会报错。
    • b:二进制模式
    • +:更新一个文件(可读,可写)
    • U:通用换行模式
    • rb:以二进制格式、只读方式打开文件件。文件指针在文件开头。一般用于非文本文件如图片等。
    • r+:打开一个文件用于读写。文件指针在开头。
    • rb+:以二进制格式、只读方式打开一个文件用于读写。一般用于非文本文件如图片等。
    • w:打开一个文件用于写入。如果文件已经存在,则会清空原有文件内容,从头开始编辑写入。如果文件不存在,则创建新文件。
    • wb:以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    • w+:打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。
    • wb+:以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。
    • a:打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    • ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
    • a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
    • ab+:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。
  • buffering:设置缓冲策略。当没有指定buffering时:二进制文件以固定大小的块进行缓冲。通过启发式方法尝试获取底层设备的块大小,并返回到 io.DEFAULT_BUFFER_SIZE 。在大多数系统中,缓冲区大小通常为4096或者8192字节;“交互式”文本文件(isatty()返回True的文件)使用行缓冲。其他文本文件对二进制文件使用上述策略。
    • 0:关闭缓冲。只能在二进制模式下使用。
    • 1:行缓冲。只能在文本模式下使用。
    • >1:大于1的整数。指定缓冲区块的字节大小。
  • encoding:指定编码或解码方式。这个只能用在文本模式中。默认的编码方式取决于所用平台(locale.getpreferredencoding()的返回值)。
  • errors:可选的字符串,指定如何处理编码和解码错误(不能在二进制模式中使用)。
  • newline:控制通用换行模式的工作方式(它只适用于文本模式)。它可以是:None、''、'\n'、'\r'、'\n\r'。
  • closefd:如果closefd为False,并且提供了文件描述符(而不是文件名),那么在关闭文件时,底层文件描述符将保持打开状态。如果给定文件名closefd必须为真(默认),否则将引发错误。
  • opener:

    ord(c)

描述

给定一个表示一个Unicode字符的字符串,返回一个表示该字符的Unicode编码点的整数编号。

参数

一个字符串

返回值

Unicode编码表内的整数编号

示例

>>> ord('1')
49
>>> ord('a')
97
>>> ord('A')
65
>>> ord('中')
20013
>>> ord('国')
22269

pow(x, y[, z])

描述

返回x**y的值,如果给定了 z 参数,则返回 x**y%z的值

参数

x,y,z:必须具有数字类型。对于混合操作数类型,应用二进制算术运算符的强制规则。对于int操作数,结果具有与操作数相同的类型(强制后),除非第二个参数为负;在这种情况下,所有参数都转换为float,并交付float结果。如果第二个参数为负数,则必须省略第三个参数。如果z存在,x和y必须是整数类型,y必须是非负的。

返回值

x的y次方、x的y次方除以Z取模

示例

>>> pow(2,4)
16
>>> pow(2,4,3)
1
>>> pow(2.1, 2)
4.41
>>> pow(2.1, 2, 2)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: pow() 3rd argument not allowed unless all arguments are integers

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)

描述

将对象打印到文本流文件中,以sep分隔,以end结尾。sep、end、file和flush如果存在,必须作为关键字参数给出。sep 和 end 必须是字符串。也可以是 None,这就代表使用默认值。如果没有给定 objects 则将只会输出 end .

参数

  • objects:复数,可以一次输出多个对象。输出多个对象时,以 ',' 分隔。
  • sep:当输出多个对象时,用来分隔对象。默认值是空格
  • end:用来设定以什么结尾。默认值时换行符。
  • file:必须是具有 write(string) 方法的对象。如果未指定或设置为 None,将使用 sys.stdout。由于打印参数被转换为文本字符串,所以print()不能用于二进制模式文件对象。对于这些,使用file.write(…)代替。
  • flush:是否强制刷新缓存。

示例

>>> print('a')
a
>>> print('a','b')
a b
>>> print('a','b',sep='...')
a...b
>>> print('a','b',sep='...',end='+++')
a...b+++

class property(fget=None, fset=None, fdel=None, doc=None)

描述

将类中的方法像类属性一样调用,规范化的访问类的属性和修改类属性的值的一种方法

参数

  • fget:获取属性值的函数
  • fset:设置属性值的函数
  • fdel:深处属性值的函数
  • doc:返回属性说明的函数

返回值

返回一个property类

示例

第一种

>>> class A(object):
...     def __init__(self, a, b):
...         self.a = a
...         self.b = b
... 
...     def getValue(self):
...         return self.a, self.b
... 
...     def setValue(self, size):
...         self.a, self.b = size
... 
...     def delValue(self):
...         del self.a
... 
...     size = property(fget=getValue, fset=setValue, fdel=delValue, doc="十万伏特")
... 
>>> test = A(22, 33)
>>> print(test.a, test.b)
22 33
>>> print(test.size)
(22, 33)
>>> test.size = 2222, 3333
>>> print(test.size)
(2222, 3333)
>>> del test.b
>>> print(test.size)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "<input>", line 7, in getValue
AttributeError: 'A' object has no attribute 'b'
>>> A.size.__doc__
'十万伏特'

第二种

>>> class B(object):
...     def __init__(self, a, b):
...         self.a = a
...         self.b = b
... 
...     @property
...     def Values(self):
...         """十万伏特"""
...         return self.a, self.b
... 
...     @Values.setter
...     def Values(self, size):
...         self.a, self.b = size
... 
...     @Values.deleter
...     def Values(self):
...         del self.b
...         del self.a
...         
>>> bb = B(44, 55)
>>> bb.a
44
>>> bb.b
55
>>> bb.Values
(44, 55)
>>> bb.Values = 4444, 5555
>>> bb.Values
(4444, 5555)
>>> bb.a
4444
>>> bb.b
5555
>>> del bb.a
>>> bb.b
5555
>>> bb.a
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'B' object has no attribute 'a'

range(stop),range(start,stop[,step])

描述

返回一个可迭代对象,而不是列表类型

参数

  • start:计数从start开始
  • stop:计数到stop结束,但不包括stop。
  • step:步长,默认值为1.

返回值

一个可迭代对象

示例

>>> a = range(5)
>>> type(a)
<class 'range'>
>>> a
range(0, 5)
>>> from collections import Iterable
>>> isinstance(a,Iterable)
True
>>> for i in a:
...     print(i)
...     
0
1
2
3
4
>>> b = range(2, 6, 2)
>>> type(b)
<class 'range'>
>>> b
range(2, 6, 2)
>>> isinstance(b,Iterable)
True
>>> for i in b:
...     print(i)
...     
2
4

repr(object)

描述

将 object 转换为可供解释器杜旭的字符串形式。通常情况下,object = eval(repr(object)),否则,返回一个用尖括号括起来的字符串,其中包含object的名称以及附加信息(通常包括对象的名称和地址)。

参数

  • repr:对象

返回值

字符串

示例

>>> a = [1, 2, 3, 4]
>>> repr(a)
'[1, 2, 3, 4]'
>>> aa = eval(repr(a))
>>> aa
[1, 2, 3, 4]
>>> a
[1, 2, 3, 4]
class B(object):
    def A(self):
        return 111
b = B()
repr(b)
'<B object at 0x039E6350>'
b
<B object at 0x039E6350>

reversed(seq)

描述

返回一个反向的迭代器。

参数

seq必须是一个具有__reversed__()方法或支持序列协议(len()方法和__getitem__()方法的对象,整数参数从0开始)。

返回值

反向迭代器

示例

>>> "".join(list(reversed('python')))
'nohtyp'
>>> list(reversed([1,2,3,4,5]))
[5, 4, 3, 2, 1]
>>> tuple(reversed((1,2,3,4,5)))
(5, 4, 3, 2, 1)

round(number[, ndigits])

描述

返回 number 四舍五入后的值。如果 ndigits 为空或者None,则返回最接近number的整数。

参数

  • number:数字表达式
  • ndigits:小数点位数,默认为0

返回值

返回number的四舍五入值

示例

>>> round(2.345)
2
>>> round(2.345,1)
2.3
>>> round(2.345,2)
2.35
>>> round(2.345,3)
2.345
>>> round(2.345,4)
2.345
>>> round(2.00000567,3)
2.0
>>> round(-2.00000567,3)
-2.0
>>> round(-2.00000567,5)
-2.00001
# 需要注意的几个
>>> round(0.5)  #取整到偶数部分
0
>>> round(-0.5)
0
>>> round(2.5)
2
>>> round(3.5)
4
>>> round(10.5)
10
>>> round(11.5)
12
>>> round(2.675,2)  # 并不是bug,有些浮点数在计算机中并不能像整数那样被精准的表达,它可能是一个近似值。
2.67

class set([iterable])

描述

创建一个set对象。或者使用iterable中的元素生成一个set对象。

参数

  • iterable:可迭代对象

返回值

新的集合对象

示例

>>> a = set()
>>> a
set()
>>> set('python')
{'p', 'o', 'y', 'h', 't', 'n'}
>>> set('hello world')
{' ', 'e', 'w', 'd', 'o', 'l', 'h', 'r'}

setattr(object, name, value)

描述

和 getattr 相似,如果 object 允许,函数将会把 value 赋值给 name。

参数

  • object:对象
  • name:字符串,对象属性名。可以是现有属性或是新属性。
  • value:属性值

示例

>>> class A(object):
...     a = 1
...     
>>> aa = A()
>>> aa.a
1
>>> getattr(aa,'a')
1
>>> setattr(aa,'a', 2)  # 设置现有属性
>>> getattr(aa,'a')
2
>>> setattr(aa,'b', 2)  # 设置新属性
>>> aa.b
2
>>> getattr(aa,'b')
2

class slice(stop)、class slice(start, stop[, step])

描述

返回一个切片对象,该对象是一组由rang(start,stop,step)指定的索引集合。start、step 参数的默认值为None。 slice 对象具有只读数据属性 start、stop 和 step,他们将返回设定的参数值或者默认值。

参数

  • start:起始位置
  • stop:结束位置
  • step:间距

返回值

一个切片对象

示例

>>> a = slice(5)
>>> a.start,a.stop,a.step
(None, 5, None)
>>> a
slice(None, 5, None)
>>> aa = range(10)
>>> list(aa)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> aa[a]
range(0, 5)
>>> list(aa[a])
[0, 1, 2, 3, 4]
>>> b = slice(2, 8, 2)
>>> b.start,b.stop,b.step
(2, 8, 2)
>>> aa[b]
range(2, 8, 2)
>>> list(aa[b])
[2, 4, 6]

sorted(iterable, *, key=None, reverse=False)

描述

对 iterable 进行排序操作,并返回一个新的list

参数

  • iterable:可迭代对象
  • key:指定一个函数,并把 iterable 中的每一个元素带入函数中,并根据返回的值的排序来对iterable进行排序。默认值是None
  • reverse:是否反转。False 升序,True 降序。

返回值

重新排列后的iterable

示例

>>> sorted([5,2,5,7,1,6])
[1, 2, 5, 5, 6, 7]
>>> sorted(('a', 'b', '1', '4', '7', '5', '3', 'A'))
['1', '3', '4', '5', '7', 'A', 'a', 'b']
>>> a = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]
>>> def By_name(x):
...     return x[0][0].lower()
... 
>>> sorted(a,key=By_name)
[('Adam', 92), ('Bob', 75), ('Bart', 66), ('Lisa', 88)]
>>> def By_num(x):
...     return x[1]
... 
>>> sorted(a,key=By_num)
[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]
>>> sorted(a, key=By_num, reverse=True)
[('Adam', 92), ('Lisa', 88), ('Bob', 75), ('Bart', 66)]

@staticmethod

描述

将一个方法转换为静态方法。在类中,静态方法不会隐式的接收第一个参数。

示例

>>> class A(object):
...     @staticmethod
...     def B():
...         print('刀剑神域')
...         
>>> A.B()  # 静态方法可以在不实例化类的情况下调用
刀剑神域
>>> a = A()
>>> a.B()
刀剑神域

class str(object='')、class str(object=b'', encoding='utf-8', errors='strict')

描述

返回对象的 str 版本

参数

  • object='':需要转换成字符串的对象,默认是空字符串。
  • object=b'':需要转换成字符串的对象,参数必须是一个类字节对象(如:bytes、bytearray),默认是空字节对象
  • encoding:转换成字符串时使用的编码,默认编码是 utf-8
  • errors:转换字符串时,设置报告错误的级别。参数必须是系统中定义的错误级别,默认为strict.

返回值

返回转换后的字符串

示例

>>> str('关于我转生变成史莱姆这档事')
'关于我转生变成史莱姆这档事'
>>> str([1,2,3,4,5])
'[1, 2, 3, 4, 5]'
>>> str(b'Angels of Death','utf-8')
'Angels of Death'

sum(iterable[, start])

描述

计算 iterabel 中所有元素和 start 的总和。iterable中的元素通常为数字,start 不可以为字符串。在有些实例中,sum()不是最优选择。如:连接字符串优先使用 ''.join(sequence);对比较精准的浮点数进行计算优先使用math.fsum();连接迭代器优先使用itertools.chain()

参数

  • iterable:可迭代对象
  • start:指定相加的参数,默认值为0

返回值

返回计算结果

示例

>>> sum([1,2,3])
6
>>> sum([1,2,3],4)
10

super([type[, object-or-type]])

描述

用于子类调取父类的方法。

参数

  • type:类
  • object-or-type:类,一般为self

示例

>>> class Base(object):
...     def __init__(self):
...         print("in base")
...         print('out base')
...         
>>> class A(Base):
...     def __init__(self):
...         print("in A")
...         super().__init__()
...         print("out A")
...         
>>> class B(Base):
...     def __init__(self):
...         print("in B")
...         super(B, self).__init__()
...         print("out B")
... 
>>> class C(A, B):
...     def __init__(self):
...         print("in C")
...         super().__init__()
...         print("out C")
>>> cc = C()
in C
in A
in B
in base
out base
out B
out A
out C

tuple([iterable])

描述

不是一个函数,而是一个不可变的序列类型。

参数

  • 要转换成元组的可迭代对象

返回值

元组

示例

>>> tuple(range(5))
(0, 1, 2, 3, 4)
>>> tuple('python')
('p', 'y', 't', 'h', 'o', 'n')
>>> tuple(['a,','b','c','d'])
('a,', 'b', 'c', 'd')

class type(object)、class type(name, bases, dict)

描述

对于一个参数,返回对象的类型。返回值是一个类型对象,通常与object.__class__返回的对象相同。推荐使用isinstance()内置函数来测试对象的类型,因为它考虑了子类。对于三个参数返回新的类型对象。

参数

  • object:需要进行判断的对象
  • name:字符串形式的类名
  • bases:元组形式的基类序列
  • dict:类内定义的命名空间变量。(类属性、类方法等组成的字典)

返回值

一个参数返回对象的类型。三个参数,返回新的类型对象。

示例

# 一个参数
>>> type('python')
<class 'str'>
>>> type(1)
<class 'int'>
>>> type(range(5))
<class 'range'>
# 三个参数 B等价于A
>>> def bb(self):
...     print(self.b)
...     
>>> B = type('B',(object,),dict(b = 1, bb = bb))
>>> B
<class 'B'>
>>> bb = B()
>>> bb.b
1
>>> bb.bb()
1
>>> class A(object):
...     def __init__(self):
...         self.a = 1
...     def aa(self):
...         print(self.a)
...         
>>> A
<class 'A'>
>>> aa = A()
>>> aa.a
1
>>> aa.aa()
1

vars([object])

描述

返回带有__dict__属性的模块、类、实例或任何其他对象的__dict__属性。

参数

对象

返回值

一个字典,对象object的属性和属性值的字典对象,如果没有参数,就打印当前调用位置的属性和属性值 类似 locals()。

示例

>>> class A(object):
...     a = 1
...     b = 2
...     def __init__(self):
...         self.c = 3
...         self.d = 4
...         
>>> vars(A)
mappingproxy({'__module__': 'builtins', 'a': 1, 'b': 2, '__init__': <function A.__init__ at 0x0456C108>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None})
>>> A.__dict__
mappingproxy({'__module__': 'builtins', 'a': 1, 'b': 2, '__init__': <function A.__init__ at 0x0456C108>, '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute '__weakref__' of 'A' objects>, '__doc__': None})
>>> vars()
{'__builtins__': {'__name__': 'builtins', '__doc__': "Built-in functions, exceptions, and other objects.\n\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>), '__build_class__': <built-in function __build_class__>, '__import__': <bound method ImportHookManager.do_import of <module '_pydev_bundle.pydev_import_hook.import_hook'>>, 'abs': <built-in function abs>, 'all': <built-in function all>,
........省略............... 
'license': See http://www.python.org/3.7/license.html, 'help': Type help() for interactive help, or help(object) for help about object., 'execfile': <function execfile at 0x044C5228>, 'runfile': <function runfile at 0x04520C00>, '_': None}, 'sys': <module 'sys' (built-in)>, 'A': <class 'A'>}
>>> locals()
{'__builtins__': {'__name__': 'builtins', '__doc__': "Built-in functions, exceptions, and other objects.\n\nNoteworthy: None is the `nil' object; Ellipsis represents `...' in slices.", '__package__': '', '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>), '__build_class__': <built-in function __build_class__>, '__import__': <bound method ImportHookManager.do_import of <module '_pydev_bundle.pydev_import_hook.import_hook'>>, 'abs': <built-in function abs>, 'all': <built-in function all>, 
.................省略.................
'license': See http://www.python.org/3.7/license.html, 'help': Type help() for interactive help, or help(object) for help about object., 'execfile': <function execfile at 0x044C5228>, 'runfile': <function runfile at 0x04520C00>, '_': None}, 'sys': <module 'sys' (built-in)>, 'A': <class 'A'>}

zip(*iterables)

描述

将可迭代的对象作为参数,将各个对象中对应索引位置的元素打包成一个个元组,然后返回由这些元组组成的对象。如果给定的可迭代对象长度不等,则以最短的迭代对象为准。

参数

一个或多个迭代器

返回值

返回一个zip对象

示例

>>> a = [1,2,3,4]
>>> b = (5,6,7,8)
>>> zip(a,b)
<zip object at 0x037A4760>
>>> list(zip(a,b))
[(1, 5), (2, 6), (3, 7), (4, 8)]
>>> c = [9,10,11,12,13,14]
>>> list(zip(a,c))
[(1, 9), (2, 10), (3, 11), (4, 12)]
>>> ab = zip(a,b)
>>> aa,bb = zip(*ab)
>>> aa,bb
((1, 2, 3, 4), (5, 6, 7, 8))

__import__(name, globals=None, locals=None, fromlist=(), level=0)

描述

用于动态的加载类和函数,只接收字符串作为参数,比如希望加载某个文件夹下的所有模块,但是其下面的模块又是会经常变化,这里就可以使用这个函数动态的加载所有模块了,常见的场景是插件功能的支持。import语句就是调用这个函数进行导入工作的,import os 等于 sys = import('sys')。

拓展

使用字符串动态的重载模块。
实现方法是先取消导入的模块然后在重新导入。利用 sys.modules 查看所有已经加载并成功的模块。然后利用 del sys.modules['模块名']。
a.py

#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
# Created by fjg on 2018/11/9

import os
print("this is a.",id(os))

b.py

#!/usr/bin/env python3
# _*_ coding:utf-8 _*_
# Created by fjg on 2018/11/9

import sys
__import__('a')
print(sys.modules)
del sys.modules['a']
__import__('a')

执行结果

this is a. 52125440
{'sys': <module 'sys' (built-in)>, 
.........省略..............
'a': <module 'a' from 'E:\\dev\\lye\\test\\a.py'>}
this is a. 52125440

参数

  • name:字符串。模块名称
  • globals:指定全局变量
  • locals:指定局部变量
  • fromlist:指定要导入的子模块或者对象的名称。
  • level:指定时相对导入还是绝对导入。默认值为0
    • 0:绝对导入
    • > 0 :大于0 的整数值,表示相对于 import() 当前目录向上搜索的父目录的数量。

转载于:https://www.cnblogs.com/fujiangong/p/9947133.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值