Skip to content

内置函数

Python 解释器内置了很多函数和类型,不用引入相关包,任何时候都能使用。这些函数的底层使用C语言进行实现,执行效率相对较高。

A

abs(number, /)

返回一个数字的绝对值。 参数可以是整数、浮点数或任何实现了 __abs__() 的对象。 如果参数是一个复数,则返回它的模。

a = -10
b = abs(a)  // b = 10

!!! note / 表示: 参数必须是仅限位置参数,只能按照位置传递,不能用关键字传递

all(iterable, /)

如果iterable的所有元素均为真值(或可迭代对象为空),则返回True

list1 = [1, 2, 3, 4]
list2 = []
list3 = [1, 2, 3, 0]
list4 = [1, 2, 3, None]
list5 = [1, 2, 3, 0.0]

print(all(list1))   # True
print(all(list2))   # True
print(all(list3))   # False
print(all(list4))   # False
print(all(list5))   # False

Python中常见的假值:

类型 假值
bool False
int 0
float 0.0
complex 0j
str “”
list []
tuple ()
dict {}
set set()
NoneType None

all()方法等价于:

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

any(iterable, /)

如果iterable的任一元素为真, 则返回True,如果可迭代对象为空, 返回False, 等价于:

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

ascii(object, /)

类似repr(), 返回一个包含对象的可打印表示形式的字符串,但是会使用\x, \u, \Urepr()返回的字符串中非ASCII编码的字符进行转义, 生成的字符串和python2的repr()结果相似

str = "Hello 世界"
str_ascii = ascii(str)
print(str_ascii)    # 'Hello \u4e16\u754c' 中文不在ASCII内, 所以会进行转义

class bool(object=False, /)

返回布尔值,TrueFalse之一, boolint的子类, 不能再被子例化

x = 0
print(bool(x))  # False

[!Caution]

object代表参数名,False代表参数值

callable(object, /)

如果object参数是可调用的则返回True, 否则返回False, 如果返回 True,调用仍可能失败,但如果返回 False,则调用 object 肯定不会成功。

[!Note]

类是可调用的(调用类将返回一个新的实例);如果实例所属的类有 __call__() 方法则它就是可调用的

类型 是否 callable
函数
实现 call 的实例
方法
partial 对象

chr(codepoint, /)

返回表示指定 Unicode 码位对应字符的字符串。例如,chr(97) 返回字符串 'a',而 chr(8364) 返回字符串 '€'。此函数是 ord()的逆操作,即返回Unicode中对应字符的码位。

c = 97
d = chr(c)
e = ord(d)
print(type(e))  # int
print(c == e)   # True

class complex()

将指定的字符串或数字转成为一个复数, 或基于特定的实部和虚部创建一个复数 复数的组成:z = a + bia为实部 (real part), b为虚部 (imaginary part), i是虚数单位,满足i^2 = -1

class complex(number=0, /)
class complex(string, /)
class complex(real=0, imag=0)

delattr(object, name, /)

这是 setattr() 的相关函数。 其参数是一个对象和一个字符串。 其中字符串必须是对象的某个属性的名称。 该函数会删除指定的属性,如果对象允许这样做的话。 例如,delattr(x, 'foobar') 等价于 del x.foobar。 name 不要求必须是 Python 标识符

dict()

class dict(**kwargs)
class dict(mapping, /, **kwargs)
class dict(iterable, /, **kwargs)

dir() / dir(object, /)

如果没有实参,则返回当前本地作用域中的名称列表。如果有实参,它会尝试返回该对象的有效属性列表。

默认的dir机制对不同类型的对象行为不同,它会试图返回最相关而不是最全的信息:

  • 如果对象是模块对象,则列表包含模块的属性名称。
  • 如果对象是类型或类对象,则列表包含它们的属性名称,并且递归查找所有基类的属性。
  • 否则,列表包含对象的属性名称,它的类属性名称,并且递归查找它的类的所有基类的属性。
import os
print(dir()) 

# result
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'os']


class Shape:
    def __dir__(self):
        return ['area', 'perimeter', 'location']

s = Shape()
print(dir(s))

# result
['area', 'location', 'perimeter']

enumerate(iterable, start=0)

返回一个枚举对象,iterable必须是一个序列或iterator或其他支持迭代的对象。 enumerate()返回的迭代器的__next__方法返回一个元组,里面包含一个计数值(从start开始,默认为0)和通过迭代iterable获得的值

seasons = ['Spring', 'Summer', 'Fall', 'Winter']
for ele in enumerate(seasons):
    print(ele)


(0, 'Spring')
(1, 'Summer')
(2, 'Fall')
(3, 'Winter')

divmod(a, b, /)

接受两个非复数数字作为参数并返回由当对其使用整除除法时的熵和余数组成的数字对,混用不同的操作数类型时,会应用二元算术运算符的规则。 对于整数来说,等同于(a // b, a % b), 对于浮点数来说,后续补充...

a = 10
b = 3
print(divmod(a, b))     # (3, 1)

引用: