0

具体来说,我可以在 Python 中提供 append() 一个 Null/None 值吗?

我正在尝试向命令行应用程序添加自动完成功能,因此我使用 readline 来获取用户可能在 raw_input 提示符下键入的任何内容。

当我尝试使用制表符(没有在控制台中输入任何值)并收到以下消息时遇到问题:“append() 只需要一个参数(给定 0)”

这是代码:

tokens = readline.get_line_buffer().split()
if not tokens or readline.get_line_buffer()[-1] == ' ':
    tokens.append()

我使用此处提供的示例是因为树的深度不是问题的遍历函数: https ://www.ironalbatross.net/wiki/index.php5?title=Python_Readline_Completions#Complex_problem_.28Regular_Grammar.29

4

3 回答 3

1

tokens变量是 a list,所以列表方法append实际上只需要一个参数。

>>> a = []
>>> a
>>> []
>>> a.append(1)
>>> a
>>> [1]
>>> a.append()
>>> TypeError: append() takes exactly one argument (0 given)
>>> a.append(None)
>>> a
>>> [1, None]
于 2012-12-07T08:47:54.023 回答
0
  1. 追加只需要一个参数

  2. 无对象不能调用附加函数

于 2012-12-07T08:48:33.713 回答
0

好的,我设法修复它......当 readline 没有返回值时,不确定提供什么值 append() 所以这样做并且它起作用了:

def complete(self,text,state):
try:
    tokens = readline.get_line_buffer().split()
    if not tokens or readline.get_line_buffer()[-1] == ' ':
        tokens.append(text)

多谢你们!

于 2012-12-07T08:55:41.233 回答