>>> list=[None]
>>> def list[0](x,y):
File "<stdin>", line 1
def list[0](x,y):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
如何将函数定义为列表的元素?
Ray*_*ger 10
Python的def不够灵活地处理普通的左值等list[0].该语言仅允许您使用标识符作为函数名称.以下是def语句的语法规则的相关部分:
funcdef ::= "def" funcname "(" [parameter_list] ")" ":" suite
funcname ::= identifier
Run Code Online (Sandbox Code Playgroud)
相反,您可以使用一系列赋值和定义语句:
s = [None]
def f(x, y):
return x + y
s[0] = f
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您还可以将lambda表达式直接存储在列表中:
s = [lambda x,y : x+y]
Run Code Online (Sandbox Code Playgroud)
def f(whatever):
do_stuff()
l[0] = f
Run Code Online (Sandbox Code Playgroud)
函数定义语法不允许您直接将函数定义到数据结构中,但您可以创建函数,然后将其分配到需要的位置.
| 归档时间: |
|
| 查看次数: |
344 次 |
| 最近记录: |