这篇文章的主题是对Python的内置函数进行分析
abs()
返回所传数值的绝对值
>>> abs(-1)
1
>>> abs(-123)
123
all()
def all(iterable):
for element in iterable:
if not element:
return False
return True
all(iterable, /)
Return True if bool(x) is True for all values x in the iterable.
If the iterable is empty, return True.
这个函数的作用是:
传入一个可迭代的(Iterable
)对象,若该对象为空,返回True
如果该对象非空,并且内部的所有元素的布尔值都为True
,则函数返回值为True
其他情况均为False
any()
def any(iterable):
for element in iterable:
if element:
return True
return False
any(iterable, /)
Return True if bool(x) is True for any x in the iterable.
If the iterable is empty, return False.
测试一下
>>> x = [1,2,3,-1, 0]
>>> all(x)
False
>>> y = [1,2,3,-1]
>>> all(y)
True
# 我发现,Python中,只有数值`0`的布尔值为`False`
对于传入该函数的可迭代对象,只有该对象中有元素的布尔值为True
,则返回True
当传入的对象为空时,返回False
ascii()
pass
bin(x)
传入一个数值参数x,将它转化为以0b
为前缀的二进制形式,并以字符串的形式返回。下面进行测试
>>> bin(10)
'0b1010'
>>> bin(14)
'0b1110'
>>> bin(-4)
'-0b100'
如果不想要0b
前缀,可以这样写
>>> format(14, 'b') # 对于format()这个内置函数,会在接下来进行讨论
'1110'
bool()
返回所传参数的Boolean
类型
>>> bool(0)
False
>>> bool([])
False
>>> bool(1)
True
>>> bool(5)
True
有意思的是,在Python中,bool
类型是int
类型的子类
>>> issubclass(bool, int) # 关于issubclass()这个函数,本文后面有讨论
True
issubclass(class, classinfo)
该函数用于判断两个类之间是否存在继承关系。issubclass()
接收两个参数,class
和classinfo
。若class为classinfo的子类,函数返回True,否则返回False。注意,在Python中,每个类也算是自己的子类。
>>> class Animal():
pass
>>> class Cat(Animal):
pass
>>> issubclass(Cat, Animal)
True
>>> issubclass(Animal, Cat)
False
>>> issubclass(Cat, Cat)
True
len()
返回所传对象的长度
>>> len({'John': 22, 'Mike': 20, 'Alex': 18}) # 字典
3
>>> len('abcde') # 字符串
5
>>> len((1, 2, 3, 4)) # 元组
4
>>> len([1, 3, 5, 7, 9]) # 列表
5
@classmethod
float()
返回所传对象的float
类型
>>> float('123')
123.0
>>> float(12)
12.0
hasattr(object, name)
传入一个对象和一个字符串,判断传入的字符串是否是这个对象的属性,是则返回True
,不是则返回False
。
object
为对象,name
为属性(字符串形式)。
>>> class Person():
def __init__(self):
self.name = 'John Wick'
self.job = 'killer'
>>> a = Person()
>>> hasattr(a, 'name')
True
>>> hasattr(a, 'age')
False
max()
返回最大值
# 可传入一个列表或者元组
>>> max([3, 1, 5, 4, 2])
5
# 可直接传入需比较的对象
>>> max(1, 7, 3, 4, 9)
9
>>> max('a', 'b', 'd')
'd'
min()
返回最小值
# 可传入一个列表或者元组
>>> min([3, 1, 5, 4, 2])
1
# 可直接传入需比较的对象
>>> min(1, 7, 3, 4, 9)
1
>>> min('e', 'a', 'b', 'd')
'a'
str()
返回所传对象的str
类型
>>> str(123)
'123'
sum()
对传入的Iterable
进行求和
>>> sum([1, 2, 3, 4, 5])
15
# 可以指定一个开始进行累加的数
>>> sum([1, 2, 3, 4, 5], start=4)
19