随笔分类 - Python基础 / python面试基础部分
摘要:进程、线程、协程 多线程和多进程是并发编程的两种实现方式。 区别: 特性 多线程 多进程 执行单位 线程,运行在同一进程内,共享内存 进程,独立的内存空间 开销 创建开销小,切换成本低 创建开销大,切换成本高 GIL 影响 受 GIL 限制,多线程不能同时执行多个 Python 字节码 独立进程,不
阅读全文
摘要:future 和 as_completed 的结合使用 from concurrent.futures import ThreadPoolExecutor, as_completed def download_file(url): # 模拟下载 import time time.sleep(1) r
阅读全文
摘要:yiled 返回一个迭代对象 ,作用在函数里,其作用类似于return yield 是 Python 中的一个关键字,用于定义生成器。生成器是一种特殊的迭代器,它可以逐步生成值,而不是一次性返回所有值。使用 yield 可以提高程序的效率,特别是在处理大量数据时,因为它允许你在需要的时候生成数据,而
阅读全文
摘要:super 是 Python 中一个内置的函数,用于调用父类的方法或初始化父类的构造函数。它在类的继承关系中非常有用,尤其在多继承中,可以有效避免直接引用父类导致的复杂性和错误。 基本语法 super([type[, object-or-type]]) type: 当前类(可选)。通常在类方法中省略
阅读全文
摘要:startswith() 函数 概述 startswith() 是 Python 字符串方法,用于检查字符串是否以指定的前缀开头。 常用于字符串匹配或验证操作。 语法 str.startswith(prefix[, start[, end]]) 参数: prefix(必需):要匹配的前缀,可以是字符
阅读全文
摘要:extend 和 append 的区别 在 Python 中,extend 和 append 都是列表 (list) 的方法,用于向列表中添加元素,但它们的行为有明显的区别。 1. extend 方法 作用 将另一个可迭代对象中的所有元素逐个添加到原列表中。 语法 list.extend(itera
阅读全文
摘要:map 和 lambda 的用法及规则 1. map 函数 map 是 Python 内置函数,用于对可迭代对象中的每个元素应用一个函数,并返回一个 map 对象(可以转换为其他数据类型,如列表、元组等)。 语法 map(function, iterable, ...) 参数 function:需要
阅读全文
摘要:self 与 cls 的概念类似,但它专门用于实例方法。当我们提到“self 表示调用该方法的实例本身”,意味着 self 指向类的具体实例,而不是类本身。通过 self,你可以访问实例的属性和方法。 1. self 指向实例对象: self 是类中方法的第一个参数,用于引用该方法所属的实例对象。
阅读全文
摘要:在 Python 中,类有三种常用的方法,以及相应的装饰器。下面是它们的详细介绍: 1. 类的方法 实例方法(Instance Method) 实例方法是类中定义的常规方法,第一个参数通常是 self,指代实例本身。 实例方法可以访问和修改实例的属性。 python class MyClass: d
阅读全文
摘要:在 Python 中,深拷贝(deep copy)、浅拷贝(shallow copy)和赋值(assignment)有不同的行为,主要体现在对对象及其内容的引用方式上。 赋值(Assignment): 赋值操作(例如 a = b)并不会创建对象的副本,而是让 a 和 b 引用同一个对象。这意味着如果
阅读全文
摘要:Painless 是 Elasticsearch 中的脚本语言,专为高性能、简单和安全的脚本执行设计。它广泛用于 Elasticsearch 的自定义脚本需求中,比如过滤条件、聚合和数据处理任务。Painless 语言的语法和 Java 相似,提供了丰富的内置方法和类型支持,可以高效处理文档数据。
阅读全文
摘要:处理高并发是现代开发中一个重要的需求,特别是在 Web 应用、数据处理、爬虫等场景中。Python 提供了许多工具来有效地处理高并发,以下是常用的一些工具及库:
阅读全文
摘要:基本的 split() 方法 split() 按照指定分隔符将字符串分割成一个列表。如果不指定分隔符,默认使用空格。 text = "apple banana orange" result = text.split() # 默认按空格分割,结果:['apple', 'banana', 'orange
阅读全文