这几个Python内置函数你都知道吗

divmod() 

divmod() 是一个 Python 内置函数,用于同时返回商和余数。它接受两个参数,第一个参数是被除数,第二个参数是除数,返回一个包含两个值的元组,第一个值是商,第二个值是余数。

示例用法如下:

result = divmod(10, 3)
print(result)  # 输出 (3, 1),10 除以 3 的商为 3,余数为 1

divmod() 函数常用于需要同时获取商和余数的情况,比如在对列表进行分页时可以方便地计算出页数和剩余元素个数。

enumerate() 

enumerate() 是 Python 中的一个内置函数,用于将一个可迭代对象(如列表、元组、字符串等)组合为一个索引序列,同时返回索引和值。它常用于在迭代过程中获取元素的索引和值。

示例用法如下:

my_list = ['apple', 'banana', 'cherry']
for index, value in enumerate(my_list):
    print(f"Index: {index}, Value: {value}")

输出:
yamlCopy code
Index: 0, Value: apple
Index: 1, Value: banana
Index: 2, Value: cherry

在上面的示例中,enumerate(my_list) 返回一个迭代器,每次迭代会返回一个元组,包含当前元素的索引和值。通过使用 enumerate(),可以更方便地在循环中获取元素的索引和值。

isinstance() 

isinstance() 是 Python 中用于检查一个对象是否是指定类或类型的实例的内置函数。它的语法如下:

isinstance(object, classinfo)

其中,object 是要检查的对象,classinfo 可以是一个类或者一个类型(如 int、str、list 等)。如果 object 是 classinfo 类型的实例(或者是其子类的实例),则返回 True,否则返回 False。

示例用法如下:

x = 5
print(isinstance(x, int))  # 输出 True,因为 x 是 int 类型的实例

y = "Hello"
print(isinstance(y, str))  # 输出 True,因为 y 是 str 类型的实例

z = [1, 2, 3]
print(isinstance(z, list))  # 输出 True,因为 z 是 list 类型的实例

isinstance() 在判断对象类型时很有用,特别是在编写需要处理不同类型对象的代码时。

zip() 

zip() 是 Python 中的一个内置函数,用于将多个可迭代对象组合成一个元组序列。它接受多个可迭代对象作为参数,返回一个迭代器,每次迭代会返回一个元组,包含每个可迭代对象当前位置的元素。

示例用法如下:

names = ["Alice", "Bob", "Charlie"]
ages = [25, 30, 35]

for name, age in zip(names, ages):
    print(f"{name} is {age} years old")

输出:
csharpCopy code
Alice is 25 years old
Bob is 30 years old
Charlie is 35 years old

在这个示例中,zip(names, ages) 将 names 和 ages 两个列表组合起来,返回一个迭代器,每次迭代会返回一个元组,包含 names 和 ages 中对应位置的元素。这样可以方便地同时遍历多个列表,并对应处理它们的元素。

locals() 

locals() 是一个内置函数,用于返回当前作用域中的所有局部变量和它们的值组成的字典。你可以在函数内部调用 locals() 来获取当前函数的局部变量。注意,locals() 返回的是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容不会影响到实际变量。示例如下:

def my_function():
    a = 1
    b = 2
    print(locals())
my_function()


输出:
{'a': 1, 'b': 2}

在实际开发中,通常不建议过多地依赖 locals() 函数来操作变量,因为它会使代码变得难以理解和维护。通常情况下,更好的做法是明确地使用变量名来访问和操作变量。

globals()

globals() 是一个内置函数,用于返回全局作用域中的所有全局变量和它们的值组成的字典。你可以在任何地方调用 globals() 来获取全局作用域中的变量。与 locals() 类似,globals() 返回的也是一个字典,其中的内容是实际变量的引用,修改这个字典中的内容会影响到全局变量。示例如下:

a = 1
b = 2

def my_function():
    c = 3
    print(globals())

my_function()

输出:
sqlCopy code
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7fbf9c7a19a0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'main.py', '__cached__': None, 'a': 1, 'b': 2, 'my_function': <function my_function at 0x7fbf9c7a7d30>}

在实际开发中,一般不建议过多地使用 globals() 函数来操作全局变量,因为它可能会导致代码不够清晰和可维护。通常情况下,最好明确地使用变量名来访问和操作全局变量。

vars() 

vars() 是 Python 中的一个内置函数,用于返回对象的 __dict__ 属性,或者返回当前作用域的变量和值的字典。

对于普通对象,vars(obj) 返回对象 obj 的 __dict__ 属性,如果对象没有 __dict__ 属性,则返回 TypeError。__dict__ 属性是一个字典,包含了对象的属性和值。

示例:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p = Person("Alice", 30)
print(vars(p))  # 输出 {'name': 'Alice', 'age': 30}

对于模块、类或实例,vars() 返回该对象的 __dict__ 属性,它包含了该对象的所有属性和方法。

示例:

class MyClass:
    class_variable = "class_variable_value"

    def __init__(self):
        self.instance_variable = "instance_variable_value"

    def method(self):
        pass

print(vars(MyClass))  # 输出 {'__module__': '__main__', 'class_variable': 'class_variable_value', ...}

如果不提供参数,则 vars() 返回当前作用域的变量和值的字典。

示例:

x = 10
y = 20
print(vars())  # 输出 {'x': 10, 'y': 20}

vars() 函数在调试和动态属性操作时很有用,可以方便地查看对象的属性和值,或者获取当前作用域的变量。

操作对象属性的函数

getattr()、setattr()、hasattr() 和 delattr() 这四个函数是 Python 中用于操作对象属性的函数,它们分别用于获取、设置、检查和删除对象的属性。

getattr(object, name[, default]):获取对象 object 的属性 name 的值。如果属性不存在,可以提供一个默认值 default,如果不提供默认值且属性不存在,会引发 AttributeError 异常。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
print(getattr(p, "name"))  # 输出 "John"
print(getattr(p, "age"))   # 输出 30
print(getattr(p, "gender", "Male"))  # 输出 "Male",因为 gender 属性不存在

setattr(object, name, value):设置对象 object 的属性 name 的值为 value。如果属性不存在,会创建一个新的属性。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
setattr(p, "age", 40)
setattr(p, "gender", "Male")
print(p.age)     # 输出 40
print(p.gender)  # 输出 "Male"

hasattr(object, name):检查对象 object 是否具有属性 name。如果对象具有该属性,则返回 True,否则返回 False。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
print(hasattr(p, "name"))  # 输出 True
print(hasattr(p, "gender"))  # 输出 False

delattr(object, name):删除对象 object 的属性 name。如果属性不存在,会引发 AttributeError 异常。

示例:

class Person:
    name = "John"
    age = 30

p = Person()
delattr(p, "age")
print(hasattr(p, "age"))  # 输出 False

这些函数在操作对象的属性时很有用,可以灵活地对属性进行获取、设置、检查和删除操作

更多内置函数可以查看:https://www.runoob.com/python3/python3-built-in-functions.html

查看原文:这几个Python内置函数你都知道吗

关注公众号 "字节航海家" 及时获取最新内容

  • 28
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值