python中的函数应该先定义再调用、还先调用后定义呢?或者说与顺序无关呢?
根据C/C++ 中关于函数定义与调用的关系的规定,应该是先定义后调用,但是大家都晓得python是一门格式十分自由的编程语言,会不会不受此限制呢?
不多说,看代码:
1、先定义、后调用:
def multiply_square(x,y):
return x*x+y*y
print(multiply_square(3,4))
2、先调用、后定义
print(add_square(3,4))
def add_square(x,y):
return x*x+y*y
可以看到,报错了,所调用的函数 add_square 没有定义
通过上述例子可以看出,语句对函数的调用必须是: 先定义、后调用
3、那么函数对函数的调用呢?看代码:
先定义、后调用
def multiply_square(x,y):
total = add_square(x,y)+(x*x+y*y)
return total
def add_square(x,y):
return x*x+y*y
print(multiply_square(3,4))
本例中 multiply_square 函数调用后定义的 add_square 的函数,然而并未报错:
则: 函数对函数的调用,不受 定义、调用顺序的影响
4、函数对函数的调用
def multiply_squares(x,y):
total = add_squares(x,y)+(x*x+y*y)
return total
print(multiply_squares(3,4))
def add_squares(x,y):
return x*x+y*y
本例中的 print 调用语句放在了 multiply_squares 与 add_squares 函数之间,函数调用报错:add_squares未定义
则: 语句对函数调用,必须在函数调用之后,包括直接调用的函数调用的其他函数也必须在调用语句之后
综上所述:
1、函数对函数的调用不受 先定义后调用规则的影响
2、语句对函数的调用(包括直接调用的函数又间接调用其他函数)必须放在函数(包括间接调用的函数)之后
3、若不使用语句,只有函数对函数的调用,则位置自由
Reference: