常用的Python内置函数

这篇博客详细介绍了Python的内置函数,包括getattr(), setattr(), id(), type()等40个常用函数的用途、语法和示例,涵盖了对象操作、类型检查、序列处理、数据转换等多个方面,帮助读者更好地理解和运用Python内置功能。" 46716277,4624507,阿里巴巴实习体验:智能硬件与旺信行家探索,"['阿里巴巴集团', '旺信', '智能硬件', '云计算', '实习经验']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1. getattr() 函数:

2. setattr() 函数:

3. id():返回对象的唯一标识符(内存地址)。

4. type():返回对象的类型。

5. isinstance(obj, classinfo):判断对象是否是某种类型或其子类的实例。

6. issubclass(class1, class2):判断一个类是否是另一个类的子类。

7. getattr(obj, name[, default]):获取对象的属性值。如果属性不存在,可以通过提供可选的第三个参数设置默认返回值。

8. setattr(obj, name, value):设置对象的属性值。

9. delattr(obj, name):删除对象的属性。

10. hasattr(obj, name):检查对象是否有指定名称的属性。该函数返回布尔值,如果对象拥有指定名称的属性,则返回 True,否则返回 False。

11. dir(obj):列出对象的所有属性和方法名。

12. len(obj):返回对象的长度,适用于列表、元组、字符串、字典等可迭代对象。

13. iter(obj[, sentinel]):返回一个迭代器对象,用于遍历序列或其他可迭代的对象。

14. next(iterator[, default]):从迭代器中获取下一个项目,如果没有更多项目则抛出StopIteration异常或返回默认值(在Python 3中提供默认参数)。

15. tuple(obj) / list(obj) / set(obj) / dict(obj):将可迭代对象转换成相应的数据结构。

16. hash(obj):如果对象是可哈希的,则返回该对象的哈希值。

17. copy.copy(obj) / copy.deepcopy(obj):浅复制与深复制对象,需要导入copy模块。

18. callable(obj):判断一个对象是否可调用。即判断它是否是可调用对象(Callable Object),如函数、方法、带有 __call__ 方法的类实例等。

19. chr(i) / ord(c):将整数转换为其对应的单个字符(unichr在Python 3中变为chr),或将单个字符转换为其对应的Unicode编码。

20. min() 和 max() - 分别返回序列中的最小和最大元素

21.sum() - 计算序列中所有元素的和

22.sorted() - 对序列进行排序并返回一个新的排序后的序列(原序列不变)

23.reversed() - 返回一个反转的迭代器

24.enumerate() - 返回一个枚举对象,包含索引和对应的值

25.str.upper() 或 str.lower() - 将字符串转换为大写或小写

26.str.split() - 按照分隔符切割字符串成多个子字符串组成的列表

27.str.join() - 使用指定的字符连接列表中的元素形成一个字符串

28.append() - 向列表末尾添加一个元素(不是内置函数,而是列表的方法)

29.insert() - 在列表指定位置插入元素

30.remove() - 从列表中移除第一个匹配的指定元素

31.extend() - 在列表后面追加另一个序列的所有元素

32.set() - 创建一个无序不重复元素集:

33.any() 和 all() - 检查一个可迭代对象中是否存在至少一个True(any())或全部为True(all())的元素:

34.abs() - 返回数字的绝对值

35.round() - 对浮点数进行四舍五入

36.pow(x, y[, z]) - 计算幂次方,如果有第三个参数z,则计算 x^y % z

37.range() - 创建一个整数序列

38.zip() - 将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表

39.str.replace(old, new[, count]) - 替换字符串中所有的 old 子串为 new 子串,可选参数 count 控制替换次数

40.int(x[, base]) / float(x) / str(x) / bool(x) - 将其他类型的数据转换为整型、浮点型、字符串型或布尔型


1. getattr() 函数:

  • 用途: 根据名称动态地从对象中获取属性值。
  • 语法:
    getattr(obj, name[, default])
  • 参数:
    • obj: 必须是一个对象,你想从这个对象中获取属性。
    • name: 字符串类型,表示你想要访问的属性名。
    • default(可选): 如果指定的属性不存在于对象上,则返回此默认值。如果不提供,默认抛出 AttributeError 异常。
class MyClass:
    def __init__(self):
        self.my_attribute = "Hello, World!"

my_instance = MyClass()
attribute_value = getattr(my_instance, 'my_attribute')  # 获取 my_attribute 的值
print(attribute_value)  # 输出: Hello, World!

2. setattr() 函数:

  • 用途: 动态地给对象添加或修改属性及其值。
  • 语法:
    setattr(obj, name, value)
  • 参数:
    • obj: 同样是一个对象,你想在这个对象上设置属性。
    • name: 要设置或创建的属性的字符串名称。
    • value: 要赋予属性的新值。
class MyClass:
    pass

my_instance = MyClass()

# 动态添加并设置一个新属性
setattr(my_instance, 'new_attribute', 42)
print(getattr(my_instance, 'new_attribute'))  # 输出: 42

# 修改已存在的属性值
setattr(my_instance, 'new_attribute', 'New Value')
print(getattr(my_instance, 'new_attribute'))  # 输出: New Value

这两个函数在处理对象属性时提供了很大的灵活性,尤其是在需要根据条件动态操作属性或处理未知属性名的情况下非常有用。

3. id():返回对象的唯一标识符(内存地址)。

这个标识符是一个整数,代表了对象在内存中的地址。每个创建的对象在内存中都有一个唯一的地址,id() 函数就是用来获取这个地址的

a = 123
print(id(a))  # 输出示例:140732859644944(实际输出会根据运行环境变化)

4. type():返回对象的类型。

它的主要作用是返回一个对象的类型。可以用它来查看任何对象的数据类型。

# 创建一个字符串对象
s = "Hello, World!"

# 使用 type() 函数检查数据类型
print(type(s))  # 输出: <class 'str'>

# 创建一个整数对象
i = 42

# 检查整数的数据类型
print(type(i))  # 输出: <class 'int'>

# 创建一个列表对象
l = [1, 2, 3]

# 检查列表的数据类型
print(type(l))  # 输出: <class 'list'>

5. isinstance(obj, classinfo):判断对象是否是某种类型或其子类的实例。

  • obj:是要检查的对象。
  • classinfo:可以是一个具体的类型(如 int、str、list 等),也可以是一个类型元组,用于判断 obj是否属于这些类型中的任意一个。
# 判断一个变量是否为整数类型
x = 123
print(isinstance(x, int))  # 输出: True

# 判断一个变量是否为字符串类型
y = "Hello"
print(isinstance(y, str))  # 输出: True

# 判断一个变量是否为整数或字符串类型
print(isinstance(x, (int, str)))  # 输出: True

# 对于自定义类也适用
class MyClass:
    pass

instance = MyClass()
print(isinstance(instance, MyClass))  # 输出: True

6. issubclass(class1, class2):判断一个类是否是另一个类的子类。

  • class:这是要检查的类。
  • classinfo:可以是一个单独的类(用于判断 class 是否为其子类),也可以是一个包含多个类或元组,用于判断 class 是否为这些类中的任意一个的子类。
# Python 自带的类示例
class A:
    pass

class B(A):
    pass

class C:
    pass

# 判断 B 类是否是 A 类的子类
print(issubclass(B, A))  # 输出: True

# 判断 C 类是否是 A 类的子类
print(issubclass(C, A))  # 输出: False

# 判断 B 类是否是 (A, object) 中任意一个的子类,因为所有类都继承自 object
print(issubclass(B, (A, object)))  # 输出: True

7. getattr(obj, name[, default]):获取对象的属性值。如果属性不存在,可以通过提供可选的第三个参数设置默认返回值。

  • obj:是要从中获取属性的对象。
  • name:是要获取的属性名称。
  • default(可选):如果没有指定或者提供的属性不存在于对象上,则返回此默认值。
class MyClass:
    def __init__(self):
        self.my_attribute = "Hello"

my_instance = MyClass()

# 获取已存在的属性
print(getattr(my_instance, 'my_attribute'))  # 输出: "Hello"

# 获取不存在的属性,不提供默认值将会抛出 AttributeError 异常
# print(getattr(my_instance, 'nonexistent_attribute'))

# 获取不存在的属性,并提供一个默认值
print(getattr(my_instance, 'nonexistent_attribute', 'Default Value'))  # 输出: "Default Value"

8. setattr(obj, name, value):设置对象的属性值。

  • obj:是要设置属性的对象。
  • name:是要设置或修改的属性名称。
  • value:是要赋予该属性的新值。
class MyClass:
    pass

my_instance = MyClass()

# 设置新的属性
setattr(my_instance, 'my_attribute', "Hello")

# 验证属性是否已成功设置
print(getattr(my_instance, 'my_attribute'))  # 输出: "Hello"

# 修改已存在的属性
setattr(my_instance, 'my_attribute', "World")

# 验证属性是否已成功修改
print(getattr(my_instance, 'my_attribute'))  # 输出: "World"

9. delattr(obj, name):删除对象的属性。

  • obj:是要删除属性的对象。
  • name:是要删除的属性名称。
class MyClass:
    def __init__(self):
        self.my_attribute = "Hello"

my_instance = MyClass()

# 查看当前对象属性
print(getattr(my_instance, 'my_attribute'))  # 输出: "Hello"

# 删除对象的属性
delattr(my_instance, 'my_attribute')

# 尝试再次获取已被删除的属性,将会抛出 AttributeError 异常
# print(getattr(my_instance, 'my_attribute'))

10. hasattr(obj, name):检查对象是否有指定名称的属性。该函数返回布尔值,如果对象拥有指定名称的属性,则返回 True,否则返回 False

  • obj:是要检查的对象。
  • name:是要查找的属性名称。
class MyClass:
    def __init__(self):
        self.my_attribute = "Hello"

my_instance = MyClass()

# 检查对象是否有 my_attribute 属性
print(hasattr(my_instance, 'my_attribute'))  # 输出: True

# 检查对象是否有不存在的属性
print(hasattr(my_instance, 'nonexistent_attribute'))  # 输出: False

11. dir(obj):列出对象的所有属性和方法名。

dir() 返回的结果不仅包括对象自身的属性和方法,还包括从基类继承来的属性和方法以及 Python 对象通用的一些特殊方法(如 __init____str__ 等)

  • obj:是要查询的对象。
class MyClass:
    def __init__(self):
        self.my_attribute = "Hello"
        self.my_method = lambda: "World"

my_instance = MyClass()

# 显示 MyClass 类及其实例的所有属性和方法
print(dir(MyClass))

# 显示 my_instance 实例的所有属性和方法
print(dir(my_instance))

12. len(obj):返回对象的长度,适用于列表、元组、字符串、字典等可迭代对象。

  • obj:是要计算长度的序列类型对象或其他可迭代对象。
# 计算列表的长度:
my_list = [1, 2, 3, 4, 5]
length_of_list = len(my_list)
print(length_of_list)  # 输出:5

# 计算字符串的长度(包括空格和字符):
my_string = "Hello, World!"
length_of_string = len(my_string)
print(length_of_string)  # 输出:13

# 计算字典的项数(键值对的数量):
my_dict = {'appl
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值