Skip to main content

Python threadlocals 的一个非常小而简单的使用机制。

项目描述

构建状态

Python threadlocals 的一个非常小而简单的使用机制。

这是对threading.local类型的抽象,它试图简单地使用一点并解决意外覆盖可能已由其他代码部分添加的值的常见问题。它还实现了in运算符来测试包含和 bool() 方法来测试 Chipmunk 是否持有任何东西。

示例用法

实例化

Chipmunk对象是一种在导入时实例化的单例。

from chipmunk import Chipmunk #  Ready for use

存储数据

可以通过以下三种方式之一让花栗鼠拿着东西:

直接设置属性

Chipmunk.acorn = "Acorn"
Chipmunk.acorn_count = 5

使用store_data方法

Chipmunk.store_data("acorn", "Acorn") Chipmunk.store_data("acorn_count", 5)

并且使用用于短期存储的上下文管理器,无需检查它是否已经持有具有给定名称的东西。

Chipmunk.nut = "acorn"

with Chipmunk.hold_this("nut", "walnut"):
    do_something_with_Chipmunk()

return Chipmunk.nut #  Returns "acorn"

如果Chipmunk已经持有一些东西,而您要求它持有其他同名的东西,它将引发 AttributeError。如果要永久替换对象,则必须调用 delete_dataclear方法或使用del Chipmunk.attr

Chipmunk.nut = "acorn"
Chipmunk.nut = "walnut" #  AttributeError thrown

Chipmunk.nut = "acorn"
del Chipmunk.nut
Chipmunk.nut = "walnut" #  OK

Chipmunk.nut = "acorn"
Chipmunk.delete_data("nut")
Chipmunk.nut = "walnut" #  OK

检索数据

当从Chipmunk检索数据时,bool()检查会告诉你它是否持有任何东西。

from chipmunk import Chipmunk
if Chipmunk: #  Conditional fails
    return "Not Empty"

Chipmunk.nut = "acorn"
if Chipmunk: #  Conditional succeeds
    return "Not Empty"

测试花栗鼠是否拿着给定名称的东西就像检查一样简单

Chipmunk.nut = "acorn"
"nut" in Chipmunk #  True

可以通过使用 get_data方法或getattr直接进行属性查找来访问数据。

Chipmunk.nut = "acorn"

# These all return "acorn"
Chipmunk.nut
Chipmunk.get_data("nut")
getattr(Chipmunk, "nut")

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

chipmunk-1.0.1.tar.gz (3.6 kB 查看哈希)

已上传 source

内置分布

chipmunk-1.0.1-py2.py3-none-any.whl (5.7 kB 查看哈希

已上传 2 7