use*_*783 11 python numpy slice
我想在Python中编写一个函数,它将一个切片作为参数.理想情况下,用户可以按如下方式调用该函数:
foo(a:b:c)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这种语法不Python允许-使用a:b:c只允许范围内[],没有().
因此,我认为我的功能有三种可能性:
要求用户使用切片"构造函数"(其s_行为类似于numpy提供的版本):
foo(slice(a, b, c))
foo(s_[a:b:c])
Run Code Online (Sandbox Code Playgroud)将我的函数的逻辑放入一个__getitem__方法:
foo[a:b:c]
Run Code Online (Sandbox Code Playgroud)放弃尝试切片并单独开始,停止和步骤:
foo(a, b, c)
Run Code Online (Sandbox Code Playgroud)有没有办法让原始语法工作?如果不是,首选哪种解决方法语法?或者还有另一种更好的选择吗?
gg3*_*349 10
不要让用户感到惊讶.
如果您使用切片语法与开发人员对切片语法的期望一致,那么同一个开发人员将期望使用方括号操作,即__getitem__()方法.
相反,如果返回的对象不是原始对象的切片,那么如果您坚持使用__getitem__()解决方案,人们就会感到困惑.使用函数调用foo(a, b, c),根本不提及切片,如果有意义,可以选择指定默认值.
| 归档时间: |
|
| 查看次数: |
416 次 |
| 最近记录: |