首页Python【Python内置函数】b...

【Python内置函数】bool()函数

Python 提供了许多内置函数,这些函数是Python语言的一部分,可以直接在Python程序中使用而无需导入任何模块。

本系列将会陆续整理分享一些的Python内置函数。

文章配套代码获取有以下两种途径:
  • 通过百度网盘获取:
链接:https://pan.baidu.com/s/11x9_wCZ3yiYOe5nVcRk2CQ?pwd=mnsj 提取码:mnsj
  • 前往GitHub获取
https://github.com/returu/Python_built-in_functions





01
简介

bool() 函数用于将一个值转换为布尔值(TrueFalse)。以下是一些常见的值及其对应的布尔转换结果:
  • 数值类型:
  • 0 和 -0 会被转换为 False
  • 其他数值(包括正数和负数)会被转换为 True
  • 字符串类型:
  • 空字符串  会被转换为 False
  • 其他非空字符串会被转换为 True
  • 列表、元组、集合、字典:
  • 空列表 []、空元组 ()、空集合 set()、空字典 {} 会被转换为 False
  • 其他非空容器会被转换为 True
  • None:
None 会被转换为 False
  • 自定义对象:
自定义对象的布尔值取决于其__bool__()方法(如果存在)或__len__()方法(如果__bool__()不存在)。如果对象定义了__bool__()方法,则调用该方法;如果定义了__len__()方法且返回值为0,则结果为False,否则为True

bool() 函数的基本语法如下:

bool(object=False, /)
参数说明:
  • object可以是任何类型的值。
返回值:
返回 True 或 False。具体返回哪个值取决于 x 的真值性(truthiness)。
02
使用

下面是一些使用 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__()方法应该返回TrueFalse

# 对象定义了__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


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

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments