当使用变量进行切片时,如何使用单冒号?

2024-04-19 20:13:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用一个变量来存储切片表达式。 这就是我要做的:

    if variable is not None:
        var = variable
    elif self.__filter is not None:
        var = self.__filter
    else:
        # this doesn't work, : alone understandably gives a syntax error
        var = ':'

此处使用var:

^{pr2}$

我想这样做是为了在代码中获得更好的结构。另一种方法是根据大小写返回以下表达式:

return stuff[variable]
return stuff[self.__filter]
return stuff[:]

引发异常:ValueError: invalid literal for int() with base 10

有没有一种方法可以将冒号赋给var,以便在切片表达式(转义或类似的东西)中使用它,还是必须使用var = slice(0, self.getNumberOfVariables())?在

附言:我在问之前确实查过了,但没找到这样的东西。对不起,如果我漏了一份副本。在


Tags: 方法selfnonereturnifis表达式var
2条回答

表达式stuff[var]不变地固定了某些东西的可能性,这些东西可以用一个变量来表达。 你得想想怎么解释这些东西。 首先对代码进行解析。此时将修复使用的语法。 start:stop:step是一个表达式,编译器将其作为切片接受。一个特殊情况是:。其他可能是标量、列表和切片对象。单个对象。在

在getter中使用var,我只能将var设置为list、标量或slice对象。 当尝试为var分配冒号语法时,我只得到一个字符串文本,而字符串文本不会被getter/setter方法解析。 你不能通过给变量赋值来改变语法。在

不能直接使用冒号。它是操作的文字表示法;Python通常不允许直接使用这种标点符号,而是要求使用函数(参见operator模块中的算术运算符和相应函数)。在

要使用的函数是内置函数slice,它返回切片的显式表示。使用slice(None)包含所有内容。在

例如:

>>> s = slice(None)
>>> x = range(10)
>>> x[s]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

相关问题 更多 >