【发布时间】:2017-04-21 18:26:42
【问题描述】:
是的,我是这个Change conditions using loop and array in python的作者
所以,我正在尝试改变条件:
if sys.argv[1] == 'add':
sys.exit(add(db, usr))
if sys.argv[1] == 'rem':
sys.exit(rem(db, usr))
if sys.argv[1] == 'rmusr':
sys.exit(rmusr(db, usr))
我正在尝试使用循环更改列表中的这些条件
根据其他开发者的回答,我使用了这个:
actions = ['add','rem','rmusr']
if sys.argv[1] in actions:
sys.exit(sys.argv[1](db, usr))
但是,当我尝试检查它的功能时,我有这个
File "sql.py", line 25, in <module>
sys.exit(sys.argv[1](db, usr))
TypeError: 'str' object is not callable
看不懂,哪里出错了?
【问题讨论】:
-
他们在链接的问题中使用了字典,您使用的是列表
-
因为我认为,该列表也应该有效,但我不明白,为什么它不起作用
-
你有一个字符串列表而不是函数列表
-
它不起作用的原因是您的数组是字符串列表,而不是函数。因此,当您执行
sys.argv[1](db, usr)时,实际上您实际上是在执行此操作:"rem"(db, usr)。解决方法是将字符串数组改为函数数组 -
所以...只有字典?
标签: python arrays python-3.x for-loop if-statement