Python基础必备之最新的73个内置函数(7)

目录

setattr()

slice()

sorted()

staticmethod()

str()

sum()

super()

tuple()

type()

vars()

with()

zip()

__import__()


Python 解释器内置了很多函数和类型(一共73个内置函数),任何时候都能使用。本篇将介绍第61到第73个内置函数的作用、特性以及详细的使用方法,并给出对应的代码示例。

前面的文章已经介绍了前60个内置函数,以及介绍了一些基本概念的说明,详细的请参考前面几篇文章

Python基础之最新的73个内置函数(1)

Python基础之最新的73个内置函数(2)

Python基础之最新的73个内置函数(3)

Python基础之最新的73个内置函数(4)

Python基础之最新的73个内置函数(5)

Python基础之最新的73个内置函数(6)

Python基础之最新的73个内置函数(7)

注意:本代码示例均在当前最新版本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个内置函数总结完毕。

SteveRocket的博客_CSDN博客-Django进阶,Python进阶,网络&信息安全领域博主SteveRocket擅长Django进阶,Python进阶,网络&信息安全,等方面的知识https://blog.csdn.net/zhouruifu2015/


更多资料 · 微信公众号搜索【CTO Plus】关注后,获取更多,我们一起学习交流。

关于公众号的描述访问如下链接



关于Articulate“做一个知识和技术的搬运工。做一个终身学习的爱好者。做一个有深度和广度的技术圈。”一直以来都想把专业领域的技https://mp.weixin.qq.com/s/0yqGBPbOI6QxHqK17WxU8Q

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SteveRocket

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值