具体来说,我可以在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
答案 0 :(得分:1)
tokens
变量是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]
答案 1 :(得分:0)
追加只需要一个参数
无对象无法调用追加功能
答案 2 :(得分: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)
谢谢你们!