尤鸟倦
码龄13年
关注
提问 私信
  • 博客:167,004
    167,004
    总访问量
  • 86
    原创
  • 29,317
    排名
  • 202
    粉丝
  • 0
    铁粉
  • 学习成就

个人简介:我与我周旋久,宁作我

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:上海市
  • 加入CSDN时间: 2012-02-11
博客简介:

天上白玉京 十二楼五城

查看详细资料
  • 原力等级
    成就
    当前等级
    3
    当前总分
    218
    当月
    1
个人成就
  • 获得186次点赞
  • 内容获得4次评论
  • 获得234次收藏
  • 代码片获得132次分享
创作历程
  • 31篇
    2024年
  • 1篇
    2023年
  • 5篇
    2020年
  • 4篇
    2019年
  • 4篇
    2018年
  • 46篇
    2017年
  • 67篇
    2016年
  • 30篇
    2015年
成就勋章
TA的专栏
  • 性能测试
    1篇
  • Excel skills
    1篇
  • Java 基础
    12篇
  • javaweb
    8篇
  • SQL
    7篇
  • Android 基础
    31篇
  • Android 控件
    9篇
  • Android 高级
    2篇
  • Android 理解
    4篇
  • Android 阅读笔记
    10篇
  • 设计模式
    1篇
  • 算法笔记
    1篇
  • Selenium 学习笔记
    25篇
  • SSH
    11篇
  • 面试题
    1篇
  • Ruby 学习笔记
    27篇
  • 前端
  • Linux
    1篇
  • Python学习
    35篇
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

176人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Python线程 适合I/O处理以及涉及阻塞操作的并发执行任务,不适合计算密集型

由于 GIL 的存在,Python 线程在处理计算密集型任务时无法充分利用多核 CPU 的优势,因此不适合用于计算密集型任务。然而,对于 I/O 密集型任务和涉及阻塞操作的任务,多线程可以在等待 I/O 完成时释放 GIL,使其他线程继续执行,从而提高并发性和效率。因此,Python 线程更适合用于处理 I/O 和阻塞操作。
原创
发布博客 2024.09.05 ·
961 阅读 ·
23 点赞 ·
0 评论 ·
8 收藏

Python 命名空间包是否包含__init__.py的区别

文件时,Python 会将该目录视为一个包(package)。这允许你组织和结构化你的代码,并提供了一些额外的功能。文件,目录也可以被视为一个包,这被称为"命名空间包"。但是,它缺少一些上面提到的功能。这两种情况确实有一些区别。让我为你详细解释并提供代码示例。在 Python 3.3+ 中,即使没有。Python 目录下有。
原创
发布博客 2024.07.14 ·
235 阅读 ·
7 点赞 ·
0 评论 ·
3 收藏

Python 用相对名称来导入包中的子模块

尽管看起来似乎可以利用相对导入来访问整个文件系统,但实际上是不允许跳出定义包的那个目录的。也就是说,利用句点的组合形式进入一个不是Python包的目录会使得导入出现错误。
原创
发布博客 2024.06.21 ·
987 阅读 ·
20 点赞 ·
0 评论 ·
8 收藏

Python 装饰器为被包装的函数添加参数

我们想编写一个装饰器为被包装的函数添加额外的参数。但是,添加的参数不能影响到该函数已有的调用约定。
原创
发布博客 2024.06.03 ·
173 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Python __get__和__call__

总之,__call__方法用于让类的实例像函数一样被调用,而__get__方法则是实现描述符协议,用于动态地访问属性。这两个方法为 Python 的面向对象编程提供了更加灵活和强大的功能。
原创
发布博客 2024.05.16 ·
429 阅读 ·
5 点赞 ·
0 评论 ·
5 收藏

Python 继承顺序

在 Python 中,当一个类继承自多个父类时,解释器会按照一定的顺序搜索属性和方法。这个搜索顺序被称为方法解析顺序(Method Resolution Order, MRO)。继承顺序的逻辑是非常重要的,它决定了在使用子类的属性和方法时,Python 解释器的搜索顺序。这是因为 Python 的继承顺序遵循深度优先、从左到右的原则。方法,发现没有定义,然后按照 MRO 顺序在。方法,发现有定义,于是执行。理解好继承顺序的逻辑,可以帮助。时,Python 会先在。类的实例,并调用它的。
原创
发布博客 2024.05.09 ·
522 阅读 ·
3 点赞 ·
0 评论 ·
8 收藏

Python 定义一个属性可由用户修改的装饰器

下面给出的解决方案对上一节的示例进行了扩展,引入了访问器函数(accessor function),通过使用nonlocal关键字声明变量来修改装饰器内部的属性。在这种情况下,attach_wrapper 函数返回一个新的偏函数(partial function),它接受一个 func 参数。关键就在访问器函数(即,set_message()和set_level()),它们以属性的形式附加到了包装函数上。这行代码将 func 函数附加到 obj 对象上,函数名称为 func.这是函数的定义部分。
原创
发布博客 2024.05.08 ·
341 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

Python 装饰器 @wraps()

在 Python 中,装饰器是一个特殊的函数,它可以修改或扩展另一个函数的行为。装饰器是一个小函数,它接受另一个函数作为参数,并返回一个新的函数,该新的函数“包装”了原始函数。
原创
发布博客 2024.04.19 ·
462 阅读 ·
4 点赞 ·
0 评论 ·
12 收藏

Python 函数function和方法method区别

总的来说,函数和方法都是 Python 中的重要概念,但它们的使用场景和语义略有不同。理解这些差异有助于编写更加清晰和可维护的 Python 代码。函数直接调用,而方法需要通过类的实例来调用,并使用。
原创
发布博客 2024.04.16 ·
467 阅读 ·
4 点赞 ·
0 评论 ·
9 收藏

Python property用法

是一个内置函数,用于将一个方法转换为属性。这意味着您可以像访问属性一样访问该方法,而不需要使用括号()来调用它。这对于实现数据封装和控制访问非常有用。是一个强大的 Python 特性,可以帮助您创建更加面向对象和可维护的代码。在 Python 中,
原创
发布博客 2024.04.16 ·
230 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Python 选择用类或方法做装饰器的场景

当装饰器的功能相对简单,不需要保持任何状态信息时,使用方法作为装饰器是一个不错的选择。这种情况下,装饰器通常只是对被装饰函数进行一些额外的操作,比如记录日志、增加权限检查等。当装饰器需要保持一些状态信息,或者需要更复杂的功能时,使用类作为装饰器会更加合适。这种情况下,装饰器可以利用类的属性和方法来实现更复杂的逻辑。总的来说,使用方法作为装饰器更适合于简单的装饰器功能,而使用类作为装饰器则更适合于需要保持状态信息或实现更复杂逻辑的场景。是一个装饰器函数,它接受一个函数作为参数,并返回一个新的函数。
原创
发布博客 2024.04.16 ·
331 阅读 ·
3 点赞 ·
0 评论 ·
3 收藏

Python 类方法应用场景

类方法通常用于创建与类本身相关的方法,而不是与特定的实例对象相关的方法。使用类方法可以让代码更加灵活和可扩展。通过类方法,你可以在不修改类的实现细节的情况下,添加新的功能和行为。: 类方法可以用作备选构造器,即提供多种不同的方式来创建一个类的实例。这样可以使类的使用更加灵活和方便。Python 中的类方法是一种特殊的方法,它与普通的实例方法有一些不同之处。: 类方法可以用于实现工厂模式,根据不同的输入参数返回不同类型的对象实例。: 类方法可以用于管理类的状态和属性,比如设置或获取类级别的配置信息等。
原创
发布博客 2024.04.12 ·
358 阅读 ·
5 点赞 ·
0 评论 ·
3 收藏

Python 装饰器

这些只是 Python 装饰器的一些常见使用场景,实际上装饰器的应用范围非常广泛,可以用于优化、扩展和重构代码,提高代码的可读性和可维护性。这种异常处理装饰器可以用于统一处理多个函数的异常,避免在每个函数中重复编写异常处理代码。是的,Python 中的类装饰器可以用来取代 mixin 类、多重继承以及对。使用装饰器实现属性的 getter、setter 和 deleter 方法。使用装饰器实现自定义的上下文管理器。使用装饰器实现函数的访问权限控制。使用装饰器实现事件的注册和触发。
原创
发布博客 2024.04.12 ·
512 阅读 ·
4 点赞 ·
0 评论 ·
3 收藏

Python 反射

这些示例展示了如何使用 Python 的反射机制来动态访问对象的属性和方法。需要注意的是,反射是一个强大但也可能危险的工具,应该谨慎使用。总的来说,Python 反射是一个非常有用的功能,但使用时需要谨慎,以确保代码的安全性和可维护性。: 反射可以用来实现动态配置,允许程序在运行时根据配置文件或其他输入动态地调整自己的行为。: 反射可以用来实现插件和扩展机制,允许用户在不修改主程序代码的情况下扩展程序的功能。: 反射可以用来实现元编程,即在运行时修改程序的结构和行为。
原创
发布博客 2024.04.12 ·
422 阅读 ·
3 点赞 ·
0 评论 ·
4 收藏

Python 描述符

是 Python 中一个非常强大的特性,它允许我们自定义属性的访问行为。使用描述符,我们可以创建一些特殊的属性,在访问这些属性时执行自定义的逻辑,如数据验证、属性计算等。时,相应的描述符方法会被调用,并执行我们自定义的逻辑。**数据描述符:**用于修改属性的访问和修改行为。**delete:**在属性被删除时被调用。**方法描述符:**用于修改方法的行为。**call:**在方法被调用时被调用。**get:**在属性被访问时被调用。**set:**在属性被设置时被调用。在这个例子中,我们定义了一个。
原创
发布博客 2024.04.07 ·
634 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏

Python mixin

Python 中的 Mixin 类是一种特殊的继承机制,它允许我们在不修改类层次结构的情况下,向一个类添加额外的功能。Mixin 类通常包含一些可复用的方法或属性,可以被其他类继承和使用。: 通过 Mixin 类,我们可以在不修改类层次结构的情况下,动态地向类添加功能。这增加了代码的灵活性和可扩展性。: Mixin 类通常通过多重继承的方式被其他类使用。这允许类具有多种功能,而不需要将所有功能集中在一个类中。: Mixin 类包含可重用的方法或属性,可以被多个类继承和使用,提高了代码的复用性。
原创
发布博客 2024.04.07 ·
416 阅读 ·
5 点赞 ·
0 评论 ·
9 收藏

Python 抽象类

这种灵活性使得抽象基类可以更好地定义和约束接口,提高代码的可维护性和可扩展性。开发者可以根据需求选择使用普通方法、静态方法、类方法或属性来定义抽象接口。抽象基类可以定义一些必须被实现的行为(抽象方法),同时也可以提供一些通用的功能(具体方法),让子类可以直接使用。总之,在Python的抽象基类中,方法不必全部是抽象方法,具体方法也是可以存在的。在Python的抽象基类(ABC)中,方法并不是必须全部是抽象方法。装饰器不仅可以用于普通方法,还可以用于静态方法、类方法和属性(property)。
原创
发布博客 2024.04.02 ·
984 阅读 ·
5 点赞 ·
0 评论 ·
10 收藏

Python 子类中拓展父类属性

注意: 如果只想重新定义其中的一个方法,只使用@property是不够的。例如,下面这样的代码是无法工作的, 不能用。子类SubPerson2 只想拓展属性的部分方法, 可以用如下方法实现。子类SubPerson继承所有父类属性, 并在属性中拓展自己的操作。上面代码运行结果如下。
原创
发布博客 2024.03.29 ·
198 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

Python __variable__ 或 __method__()的双下划线名称重整”(name mangling)理解

双下划线名称重整也可用于模拟私有成员,即限制对属性和方法的直接访问。虽然在 Python 中没有严格的私有性,但是通过名称重整可以模拟私有成员,使其不容易被外部访问。在 SubClass 的 use_functions() 方法中,我们调用了父类的 public_method(),并尝试访问父类的私有属性和方法。双下划线名称重整的使用有助于确保代码的健壮性和安全性,尤其在大型项目中。在类定义中,双下划线名称重整用于防止子类意外覆盖父类的属性或方法。由于名称重整的原因,在子类中无法直接访问父类的。
原创
发布博客 2024.03.28 ·
229 阅读 ·
6 点赞 ·
0 评论 ·
1 收藏

Python 访问定义在闭包内的变量

一般来说,在闭包内层定义的变量对于外界来说完全是隔离的。但是,可以通过编写存取函数(accessor function,即getter/setter方法)并将它们作为函数属性附加到闭包上来提供对内层变量的访问支持。
原创
发布博客 2024.03.28 ·
352 阅读 ·
4 点赞 ·
0 评论 ·
5 收藏
加载更多