目录
Python 解释器内置了很多函数和类型(一共73个内置函数),任何时候都能使用。本篇将介绍第61到第73个内置函数的作用、特性以及详细的使用方法,并给出对应的代码示例。
前面的文章已经介绍了前60个内置函数,以及介绍了一些基本概念的说明,详细的请参考前面几篇文章
注意:本代码示例均在当前最新版本Python3.11上运行的结果。
Python专栏:https://blog.csdn.net/zhouruifu2015/category_5742543.html
setattr()
1. 作用
setattr()函数用于设置对象的属性值。
2. 特性
- setattr()函数接受三个参数,分别是对象、属性名和属性值。
- 如果对象已经存在该属性,则更新该属性的值。
- 如果对象不存在该属性,则创建该属性并设置属性值。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# setattr()函数的使用示例
class Person:
pass
# 创建Person对象
p = Person()
# 设置对象属性
setattr(p, 'name', 'SteveRocket')
setattr(p, 'age', 24)
setattr(p, 'blog', WEIXIN_URL)
# 输出对象属性值
print(getattr(p, 'name')) # 输出:SteveRocket
print(getattr(p, 'age')) # 输出:24
print(p.blog) # 输出:https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
# print(p.gender) # AttributeError: 'Person' object has no attribute 'gender'
在上面的示例代码中,我们先创建了一个Person类,然后创建了一个Person对象p,并使用setattr()函数设置了对象的属性值。最后使用getattr()函数获取对象的属性值,并输出。需要注意的是,如果对象不存在该属性,则会抛出AttributeError异常。
slice()
1. 作用
slice()函数用于创建一个切片对象,用于切片操作。
2. 特性
- slice()函数可以接受三个参数,分别是起始位置、结束位置和步长。
- 如果只指定一个参数,则表示结束位置,起始位置默认为0。
- 如果只指定两个参数,则分别表示起始位置和结束位置,步长默认为1。
- 切片对象可以用于切片操作,例如列表、元组、字符串等。
3. 详细用法
示例代码:
# slice()函数的使用示例
# 创建切片对象
# 一个参数
s1 = slice(5)
# 两个参数
s2 = slice(1, 2)
# 三个参数
s3 = slice(2, 5, 2)
# 切片操作
lst = [1, 2, 3, 4, 5, 6, 7]
print(lst[s1]) # 输出:[1, 2, 3, 4, 5]
print(lst[s2]) # 输出:[2]
print(lst[s3]) # [3, 5]
在上面的示例代码中,我们使用slice()函数创建了两个切片对象s1和s2,并演示了切片操作。需要注意的是,切片操作时起始位置包含在切片内,结束位置不包含在切片内。
sorted()
1. 作用
sorted()函数用于对可迭代对象进行排序。
2. 特性
- sorted()函数可以接受一个可迭代对象作为参数,并返回一个排序后的列表。
- 可以使用关键字参数key来指定排序的关键字,例如按照字符串长度排序。
- 可以使用关键字参数reverse来指定排序的顺序,True表示降序,False表示升序。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# 对字符串进行排序
print(WEIXIN_URL)
# 输出:https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
print(''.join(sorted(WEIXIN_URL)))
# 输出:...01678:BGHIKOPQQUWbcehiimmnoppqqqqssttwxxxy
# sorted()函数的使用示例
# 对列表进行排序
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
print(sorted(lst)) # 输出:[1, 1, 2, 3, 3, 4, 5, 5, 5, 6, 9]
# 对字符串列表按照长度排序
lst = ['apple', 'banana', 'cherry', 'date', 'elderberry', 'fig']
print(sorted(lst, key=len)) # 输出:['fig', 'date', 'apple', 'banana', 'cherry', 'elderberry']
# 对字典按照值排序
dct = {'apple': 3, 'banana': 1, 'cherry': 4, 'date': 1, 'elderberry': 5, 'fig': 2}
print(sorted(dct.items(), key=lambda x: x[1])) # 输出:[('banana', 1), ('date', 1), ('fig', 2), ('apple', 3), ('cherry', 4), ('elderberry', 5)]
在上面的示例代码中,我们分别对列表、字符串列表和字典进行了排序,并演示了如何使用关键字参数key和reverse来指定排序的方式。需要注意的是,对字典进行排序时,需要使用字典的items()方法将其转换为可迭代对象。
staticmethod()
1. 作用
staticmethod()函数用于将一个方法转换为静态方法。
2. 特性
- 静态方法是类中的一个方法,它不需要实例化就可以调用。
- 静态方法不能访问实例变量和实例方法,只能访问类变量和类方法。
- 静态方法可以通过类名或实例名调用。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# staticmethod()函数的使用示例
class MyClass:
x = 0
def __init__(self, y):
self.y = y
@staticmethod
def my_static_method():
print("This is a static method.", WEIXIN_URL)
# 调用静态方法
MyClass.my_static_method() # 输出:This is a static method. https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
# 创建实例并调用静态方法
obj = MyClass(1)
obj.my_static_method() # 输出:This is a static method. https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
在上面的示例代码中,我们定义了一个MyClass类,并使用staticmethod()函数将一个方法转换为静态方法。然后演示了如何通过类名或实例名调用静态方法。需要注意的是,静态方法不能访问实例变量和实例方法。
str()
1. 作用
str()函数用于将指定的对象转换为字符串。
2. 特性
- str()函数可以接受一个对象作为参数,并返回该对象的字符串表示形式。
- 如果没有指定参数,则返回空字符串。
- 对于自定义的对象,可以通过定义__str__()方法来指定其字符串表示形式。
3. 详细用法
示例代码:
# str()函数的使用示例
# 将数字转换为字符串
n = 123
print(str(n)) # 输出:123
# 将列表转换为字符串
lst = [1, 2, 3]
print(str(lst)) # 输出:[1, 2, 3]
# 自定义对象的字符串表示形式
class MyClass:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return f"MyClass({self.x}, {self.y})"
obj = MyClass(1, 2)
print(str(obj)) # 输出:MyClass(1, 2)
在上面的示例代码中,我们演示了如何使用str()函数将数字、列表和自定义对象转换为字符串。需要注意的是,对于自定义对象,可以通过定义__str__()方法来指定其字符串表示形式。
sum()
Python内置函数sum() 的作用、特性以及详细用法
1. 作用
sum()函数用于对可迭代对象进行求和操作。
2. 特性
- sum()函数可以接受一个可迭代对象作为参数,对其中的元素进行求和操作。
- sum()函数可以指定求和的起始值,如果不指定,则默认为0。
- sum()函数可以指定求和的数据类型,如果不指定,则根据可迭代对象中元素的类型自动选择数据类型。
3. 详细用法
示例代码:
# sum()函数的使用示例
# 对整数序列求和
nums = [1, 2, 3, 4, 5]
print(sum(nums)) # 输出:15
# 对浮点数序列求和
nums = [1.0, 2.0, 3.0, 4.0, 5.0]
print(sum(nums)) # 输出:15.0
# 对字符串序列求和
words = ["hello", "world"]
# print(sum(words)) # 报错:TypeError: unsupported operand type(s) for +: 'int' and 'str'
# 对字符串求和
from __init__ import WEIXIN_URL
# print(sum(WEIXIN_URL)) # TypeError: unsupported operand type(s) for +: 'int' and 'str'
# 指定求和的起始值
nums = [1, 2, 3, 4, 5]
print(sum(nums, 10)) # 输出:25
# 指定求和的数据类型
nums = [1, 2, 3, 4, 5]
print(sum(nums, 0.0)) # 输出:15.0
在上面的示例代码中,我们演示了如何使用sum()函数对可迭代对象进行求和操作,并说明了如何指定求和的起始值和数据类型。
super()
Python内置函数super() 的作用、特性以及详细用法
1. 作用
super()函数用于调用父类的方法。
2. 特性
- super()函数可以接受两个参数,第一个参数指定当前类的类型,第二个参数指定当前类的对象。
- super()函数可以在多重继承时,按照指定的顺序调用父类的方法。
- super()函数可以在子类中重载父类的方法,并通过super()函数调用父类的方法。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# super()函数的使用示例
# 定义父类
class Person:
def __init__(self, name):
self.name = name
def say_hello(self):
print("Hello, %s!" % self.name)
# 定义子类
class Student(Person):
def __init__(self, name, blog):
super().__init__(name) # 调用父类的构造方法
self.blog = blog
def say_hello(self):
super().say_hello() # 调用父类的方法
print("this is my blog %s" % self.blog)
# 创建对象并调用方法
s = Student("SteveRocket", WEIXIN_URL)
s.say_hello()
# 输出:Hello, SteveRocket!
# this is my blog https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
在上面的示例代码中,我们演示了如何使用super()函数调用父类的方法,并说明了如何在子类中重载父类的方法。需要注意的是,在子类中调用父类的方法时,需要使用super()函数,而不是直接调用父类的方法。
tuple()
Python内置函数tuple() 的作用、特性以及详细用法
1. 作用
tuple()函数用于将一个可迭代对象转换为元组。
2. 特性
- tuple()函数可以接受一个可迭代对象作为参数,并返回一个元组。
- 如果参数已经是元组,则返回该元组的副本。
- tuple()函数是不可变对象,一旦创建就不能修改。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# tuple()函数的使用示例
# 将列表转换为元组
lst = [1, 2, 3, 4, 5]
tpl = tuple(lst)
print(tpl) # 输出:(1, 2, 3, 4, 5)
# 将字符串转换为元组
print(WEIXIN_URL) # https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
tpl2 = tuple(WEIXIN_URL)
print(tpl2) # 输出:('h', 't', 't', 'p', 's', ':', '/', '/', 'm', 'p', '.', 'w', 'e', 'i', 'x', 'i', 'n', '.', 'q', 'q', '.', 'c', 'o', 'm', '/', 's', '/', '0', 'y', 'q', 'G', 'B', 'P', 'b', 'O', 'I', '6', 'Q', 'x', 'H', 'q', 'K', '1', '7', 'W', 'x', 'U', '8', 'Q')
# 如果参数已经是元组,则返回该元组的副本
tpl3 = (1, 2, 3, 4, 5)
tpl4 = tuple(tpl3)
print(tpl3 == tpl4) # 输出:True
print(tpl3 is tpl4) # 输出:True
在上面的示例代码中,我们演示了如何使用tuple()函数将列表和字符串转换为元组,并说明了如果参数已经是元组,则返回该元组的副本。
type()
Python内置函数type() 的作用、特性以及详细用法
1. 作用
type()函数用于获取对象的类型。
2. 特性
- type()函数可以接受一个对象作为参数,并返回该对象的类型。
- type()函数可以用于判断对象的类型。
- type()函数可以用于动态创建类。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL
# type()函数的使用示例
# 获取对象的类型
n = 123
print(type(n)) # 输出:<class 'int'>
print(type(WEIXIN_URL)) # 输出:<class 'str'>
lst = [1, 2, 3, 4, 5]
print(type(lst)) # 输出:<class 'list'>
# 判断对象的类型
n = 123
if type(n) == int:
print("n is an integer")
# 类型判断 类似的参考isinstance
if isinstance(n, int):
print("n is an integer")
# 动态创建类
MyClass = type("MyClass", (object,), {"age": 22, "my_blog": WEIXIN_URL})
obj = MyClass()
print(obj.age) # 输出:22
print(obj.my_blog) # 输出:https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q
在上面的示例代码中,我们演示了如何使用type()函数获取对象的类型,并用于判断对象的类型和动态创建类。需要注意的是,在动态创建类时,第一个参数是类的名字,第二个参数是父类的元组,第三个参数是类的属性字典。
vars()
Python内置函数vars() 的作用、特性以及详细用法
1. 作用
vars()函数用于返回对象的__dict__属性。
2. 特性
- vars()函数可以接受一个对象作为参数,并返回该对象的__dict__属性。
- 如果参数为空,则返回当前作用域的__dict__属性。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL, CSDN_URL
# vars()函数的使用示例
# 返回对象的__dict__属性
class MyClass:
def __init__(self):
self.age = 22
self.blog = WEIXIN_URL
obj = MyClass()
print(vars(obj)) # 输出:{'age': 22, 'blog': 'https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q'}
# 如果参数为空,则返回当前作用域的__dict__属性
gender = "M"
blog = CSDN_URL
print(vars()) # 输出:{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000002413AB55550>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'D:\\source_code\\practice_python_1\\inner_module_def_datastruct\\inner_def\\def_vars.py', '__cached__': None, 'WEIXIN_URL': 'https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q', 'CSDN_URL': 'https://blog.csdn.net/zhouruifu2015/', 'MyClass': <class '__main__.MyClass'>, 'obj': <__main__.MyClass object at 0x000002413AE28650>, 'gender': 'M', 'blog': 'https://blog.csdn.net/zhouruifu2015/'}
在上面的示例代码中,我们演示了如何使用vars()函数返回对象的__dict__属性,并说明了如果参数为空,则返回当前作用域的__dict__属性。
with()
Python内置函数with() 的作用、特性以及详细用法
1. 作用
with语句用于简化资源管理的代码。
2. 特性
- with语句可以自动管理资源的分配和释放。
- with语句可以用于处理文件、网络连接等需要手动关闭的资源。
3. 详细用法
示例代码:
from __init__ import WEIXIN_URL, CSDN_URL
# with语句的使用示例
# 处理文件资源
with open("__init__.py", "r") as f:
data = f.read()
print(data)
# 处理网络连接资源
import socket
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect(('www.baidu.com', 80))
s.sendall(b"GET / HTTP/1.1\r\nHost: www.baidu.com\r\n\r\n")
data = s.recv(1024)
print(data)
在上面的示例代码中,我们演示了如何使用with语句处理文件和网络连接等需要手动关闭的资源。需要注意的是,在with语句中打开的资源会在with语句块执行完毕后自动关闭,这样可以避免资源泄露的问题。
zip()
Python内置函数zip() 的作用、特性以及详细用法
1. 作用
zip()函数用于将多个可迭代对象合并为一个可迭代对象。
2. 特性
- zip()函数可以接受多个可迭代对象作为参数,并将它们合并成一个可迭代对象。
- zip()函数的返回值是一个元组的列表,其中每个元组包含了所有可迭代对象的当前元素。
- 如果可迭代对象的长度不一致,则zip()函数会以最短的可迭代对象为准,忽略超出部分。
3. 详细用法
示例代码:
# zip()函数的使用示例
# 合并两个列表
lst1 = [1, 2, 3]
lst2 = ["SteveRocket", "rocket_2014@126.com", "https://blog.csdn.net/zhouruifu2015/"]
result = zip(lst1, lst2)
print(list(result)) # 输出:[(1, 'SteveRocket'), (2, 'rocket_2014@126.com'), (3, 'https://blog.csdn.net/zhouruifu2015/')]
# 合并三个列表
lst1 = [3.11, 2, 3]
lst2 = ["python", "b", "c"]
lst3 = ["SteveRocket", "zip", "def"]
result = zip(lst1, lst2, lst3)
print(list(result)) # 输出:[(3.11, 'python', 'SteveRocket'), (2, 'b', 'zip'), (3, 'c', 'def')]
# 如果可迭代对象的长度不一致,则以最短的可迭代对象为准
lst1 = ['protocol', 'domain', 'author', 'date']
lst2 = ["https", "blog.csdn.net", "zhouruifu2015"]
result = zip(lst1, lst2)
print(list(result)) # 输出:[('protocol', 'https'), ('domain', 'blog.csdn.net'), ('author', 'zhouruifu2015')]
在上面的示例代码中,我们演示了如何使用zip()函数将多个可迭代对象合并成一个可迭代对象,并说明了如果可迭代对象的长度不一致,则以最短的可迭代对象为准。
__import__()
Python内置函数__import__() 的作用、特性以及详细用法
1. 作用
__import__()函数用于动态导入模块。
2. 特性
- __import__()函数可以接受一个字符串作为参数,动态导入对应的模块。
- __import__()函数可以指定导入的模块名、导入的路径、导入的包等信息。
- __import__()函数返回导入的模块对象。
3. 详细用法
示例代码:
# __import__()函数的使用示例
# 导入模块
math = __import__("math")
print(math.sin(1.0)) # 输出:0.8414709848078965
os = __import__('os')
print(os.path.exists("def__import__.py"))
# 指定导入的模块名、导入的路径、导入的包等信息
importer = __import__("os.path", fromlist=[""])
print(importer.abspath(".")) # 输出:代码执行的当前路径
在上面的示例代码中,我们演示了如何使用__import__()函数动态导入模块,并指定导入的模块名、导入的路径、导入的包等信息。需要注意的是,__import__()函数返回导入的模块对象,可以使用该对象访问导入的模块中的属性和方法。
到此,python的73个内置函数总结完毕。
更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。
关于公众号的描述访问如下链接