本系列将会陆续整理分享一些的Python内置函数。
-
通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj
提取码:mnsj
-
前往GitHub获取:
https://github.com/returu/Python_built-in_functions
-
数值类型:
-
0 和 -0 会被转换为 False。 -
其他数值(包括正数和负数)会被转换为 True。
-
字符串类型:
-
空字符串 ” 会被转换为 False。 -
其他非空字符串会被转换为 True。
-
列表、元组、集合、字典:
-
空列表 []、空元组 ()、空集合 set()、空字典 {} 会被转换为 False。 -
其他非空容器会被转换为 True。
-
None:
-
自定义对象:
bool(object=False, /)
-
object可以是任何类型的值。
下面是一些使用 bool() 函数的示例:
-
示例 1:基本使用
# 数值类型
print(bool(1)) # 输出 True
print(bool(0)) # 输出 False
print(bool(-1)) # 输出 True
# 字符串类型
print(bool('')) # 输出 False
print(bool('abc')) # 输出 True
# 列表、元组、集合、字典
print(bool([])) # 输出 False
print(bool([1, 2]))# 输出 True
print(bool({})) # 输出 False
print(bool({'a': 1})) # 输出 True
# None
print(bool(None)) # 输出 False
-
示例 2:自定义对象
当对象定义了__bool__()方法时,bool()函数会调用这个方法来确定对象的布尔值。__bool__()方法应该返回True或False。
# 对象定义了__bool__()方法
class MyClass:
def __bool__(self):
return True # 或者 False
obj = MyClass()
print(bool(obj))
# 输出 True ,取决于 __bool__() 方法的返回值
如果对象没有定义__bool__()方法,但定义了__len__()方法,bool()函数会根据__len__()方法的返回值来判断布尔值。如果__len__()返回0,则对象的布尔值为False,否则为True。
# 对象没有定义__bool__()方法,但定义了__len__()方法
class MyCollection:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items)
collection1 = MyCollection([])
collection2 = MyCollection([1, 2, 3])
print(bool(collection1))
# 输出 False,因为 __len__() 返回 0
print(bool(collection2))
# 输出 True,因为 __len__() 返回 3


本篇文章来源于微信公众号: 码农设计师