跳转到主要内容

为任何位置参数设置默认值

项目描述

positional_defaults

Python包,用于为任何位置参数设置默认值

这个小巧的Python包包含一个装饰器 @defaults,它允许您为任何位置参数指定默认参数,无论它在参数列表中的位置如何。

安装

pip install positional_defaults

使用

使用@defaults装饰器为位置参数(即在位置参数指示符/之前的参数)设置默认值

from positional_defaults import defaults

@defaults(start=0)
def myrange(start, stop, /, step=1):
    ...

# now these are equivalent
myrange(4)
myrange(0, 4)
myrange(0, 4, 1)

这也适用于方法

class A:
    @defaults(start=0)
    def myrange(self, start, stop, /, step=1):
        ...

可以设置多个默认值,它们将按照指定的顺序填充

@defaults(forename='Alice', greeting='Welcome', prefix='Mrs')
def greet(greeting, prefix, forename, surname, /, suffix='Esq'):
    ...

# these are now equivalent
greet('Smith')
greet('Alice', 'Smith')
greet('Welcome', 'Alice', 'Smith')
greet('Welcome', 'Mrs', 'Alice', 'Smith')
greet('Welcome', 'Mrs', 'Alice', 'Smith', 'Esq')

签名

左默认函数具有正确的签名

>>> from inspect import signature
>>> signature(myrange)
<Signature (start=0, stop, /, step=1)>
>>> signature(greet)
<Signature (greeting='Welcome', prefix='Mrs', forename='Alice', surname, /, suffix='Esq')>

它们会在通常的位置正确显示,例如help()

>>> help(myrange)

Help on function myrange:

myrange(start=0, stop, /, step=1)

>>> help(greet)

Help on function greet:

greet(greeting='Welcome', prefix='Mrs', forename='Alice', surname, /, suffix='Esq')

性能

当该包作为本地扩展编译时(pip在大多数情况下都会这样做),具有位置默认值的函数与未装饰的函数在性能上具有可比性。

项目详情


下载文件

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

源分发

positional_defaults-2023.4.19.tar.gz (4.3 kB 查看散列)

上传时间

构建分发

positional_defaults-2023.4.19-py3-none-any.whl (4.7 kB 查看哈希)

上传于 Python 3

positional_defaults-2023.4.19-cp311-cp311-win_amd64.whl (10.2 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

positional_defaults-2023.4.19-cp311-cp311-win32.whl (9.6 kB 查看哈希)

上传于 CPython 3.11 Windows x86

positional_defaults-2023.4.19-cp311-cp311-musllinux_1_1_x86_64.whl (23.1 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ x86-64

positional_defaults-2023.4.19-cp311-cp311-musllinux_1_1_i686.whl (22.7 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.1+ i686

positional_defaults-2023.4.19-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.7 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

positional_defaults-2023.4.19-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (17.4 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

positional_defaults-2023.4.19-cp311-cp311-macosx_10_9_x86_64.whl (7.1 kB 查看哈希)

上传于 CPython 3.11 macOS 10.9+ x86-64

positional_defaults-2023.4.19-cp310-cp310-win_amd64.whl (10.2 kB 查看哈希)

上传于 CPython 3.10 Windows x86-64

positional_defaults-2023.4.19-cp310-cp310-win32.whl (9.6 kB 查看哈希)

上传于 CPython 3.10 Windows x86

positional_defaults-2023.4.19-cp310-cp310-musllinux_1_1_x86_64.whl (21.5 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ x86_64

positional_defaults-2023.4.19-cp310-cp310-musllinux_1_1_i686.whl (21.1 kB 查看哈希值)

上传时间 CPython 3.10 musllinux: musl 1.1+ i686

positional_defaults-2023.4.19-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.9 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ x86_64 manylinux: glibc 2.5+ x86_64

positional_defaults-2023.4.19-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (16.7 kB 查看哈希值)

上传时间 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

positional_defaults-2023.4.19-cp310-cp310-macosx_10_9_x86_64.whl (7.1 kB 查看哈希值)

上传时间 CPython 3.10 macOS 10.9+ x86_64

positional_defaults-2023.4.19-cp39-cp39-win_amd64.whl (10.2 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86-64

positional_defaults-2023.4.19-cp39-cp39-win32.whl (9.6 kB 查看哈希值)

上传时间 CPython 3.9 Windows x86

positional_defaults-2023.4.19-cp39-cp39-musllinux_1_1_x86_64.whl (21.3 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ x86-64

positional_defaults-2023.4.19-cp39-cp39-musllinux_1_1_i686.whl (20.9 kB 查看哈希值)

上传时间 CPython 3.9 musllinux: musl 1.1+ i686

positional_defaults-2023.4.19-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (16.7 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

positional_defaults-2023.4.19-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (16.4 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

positional_defaults-2023.4.19-cp39-cp39-macosx_10_9_x86_64.whl (7.1 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

positional_defaults-2023.4.19-cp38-cp38-win_amd64.whl (10.2 kB 查看哈希值)

上传于 CPython 3.8 Windows x86-64

positional_defaults-2023.4.19-cp38-cp38-win32.whl (9.6 kB 查看哈希值)

上传于 CPython 3.8 Windows x86

positional_defaults-2023.4.19-cp38-cp38-musllinux_1_1_x86_64.whl (21.6 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ x86-64

positional_defaults-2023.4.19-cp38-cp38-musllinux_1_1_i686.whl (21.3 kB 查看哈希值)

上传于 CPython 3.8 musllinux: musl 1.1+ i686

positional_defaults-2023.4.19-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (17.5 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

positional_defaults-2023.4.19-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (17.2 kB 查看哈希值)

上传于 CPython 3.8 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

positional_defaults-2023.4.19-cp38-cp38-macosx_10_9_x86_64.whl (7.1 kB 查看哈希值)

上传于 CPython 3.8 macOS 10.9+ x86-64

由以下组织支持