Python函数中的静态对象。
项目描述
statics
Python函数中的静态对象
这是一个微包,包含一个装饰器 @static
,可用于将静态对象应用于Python函数。然后可以将这些对象加载到函数中的变量中,就像它们被给出时一样,而不使用全局变量或闭包。
这个工作原理可能比解释起来更容易展示
>>> from statics import static
>>>
>>> x = 1
>>>
>>> @static(x)
... def f():
... x = "__static__"
... print(f"{x=}")
...
>>> del x
>>>
>>> f()
x=1
可以声明并分配多个静态对象作为元组
>>> x, y, z = 1, 2, 3
>>>
>>> @static(x, y, z)
... def f():
... x, y, z = "__static__"
... print(f"{x=}, {y=}, {z=}")
...
>>> del x, y, z
>>>
>>> f()
x=1, y=2, z=3
函数中的静态名称不必与函数外的名称匹配
>>> x, y, z = 1, 2, 3
>>>
>>> @static(x, y, z)
... def f():
... a, b, c = "__static__"
... print(f"{a=}, {b=}, {c=}")
...
>>> del x, y, z
>>>
>>> f()
a=1, b=2, c=3
技术上,静态绑定是通过将对象存储在Python函数代码对象的co_const
数组中实现的。通过将字符串字面量"__static__"
替换为静态对象来加载变量。因此,"__static__"
字符串不能在装饰函数的其他地方使用(但包含"__static__"
子字符串的字符串不受影响)。
项目详情
下载文件
下载适合您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
statics-1.0.0.tar.gz (2.4 kB 查看哈希值)
构建分布
statics-1.0.0-py3-none-any.whl (2.9 kB 查看哈希值)
关闭
statics-1.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 908a2d1ed3eef907f38b280d367fd0f5370d7b19f5088c0de886501e256bd4da |
|
MD5 | 786fe223f05fad7e405bca5e561dff17 |
|
BLAKE2b-256 | b765349ce4596f2d6368312aaf539a41e8278a8311a1d3181708dc40b156735d |
关闭
statics-1.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ffe4c3a3f5006e8a1d9c47716bb3f4f4acff20b5b7787dd9c96110e357361158 |
|
MD5 | 4547b1ade53c5a0f2f453e6ff99dc157 |
|
BLAKE2b-256 | d9307032a023114b6d5452198cf1ad460e140c5f8ec52740b66059bf19413c4f |