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内置函数你都知道吗
关注公众号 "字节航海家" 及时获取最新内容