带括号的是函数调用,直接执行函数;不带括号的是绑定事件,事件触发再执行。
复杂点说,带括号的是把返回值赋值给事件,不带括号的是把函数体所在地址位置赋值给事件,比如df.shape
。
def test(data):
return data
if __name__ == '__main__':
a = test
print a
# 不带括号调用的结果:<function bracket at 0x0000000004DD0B38>,a是整个函数体,是一个函数对象,不须等该函数执行完成
b = test(