我是python的新手,最初来自C,我无法弄清楚python中的函数指针和回调函数。
我正在做以下但不知道为什么我会收到错误而没有错误? :
def a():
print "a"
def b():
print "b"
def c():
print "c"
def d():
print "d"
# Build dummy table
sm = [ [ a , b ], [ c, d ] ]
print sm[0][1]() # Name error sm not defined. --??
结果是:
b # This is expected
None
为什么名称错误,为什么我得到无?如何在python中创建表并存储一些函数?
答案 0 :(得分:2)
您可能会混淆return
和print
。
返回值进入表达式。
例如:
def b():
return 7
7*b() #prints 49
将输出打印到控制台
def b():
print "Hello World"
b() #Prints Hello World!
如果您尝试
def b():
print "3"
b()*2
这是无效的语法。
def b():
print "10"
return 7
print b()*5 #prints 35 because 7*5
python函数的默认返回值为None
,因此如果您不返回任何内容,则会返回该函数。这就是您看到None
。
答案 1 :(得分:-1)
您正在函数b()
中打印变量。 print
返回None
,因此外部打印语句正在打印“无”。函数中的所有prints
都应该返回。