python 函数定义必须在调用前面吗
本帖最后由 胖豆lucky 于 2019-3-2 11:40 编辑例1:
myfun()
def myfun():
print("hello world!")
结果错误:NameError: name 'myfun' is not defined
例2(019第0题):
def next():
print('我在next()函数里...')
pre()
def pre():
print('我在pre()函数里...')
next()
结果:我在next()函数里...
我在pre()函数里...
问题:例2的pre()是在调用后定义的,小甲鱼老师说:“有些编程语言不够“聪明”,向这类向前引用的方式会导致报错,但Python足够“醒目”,这段代码是正确的!”
可是如果先调用后定义,如例1,就是错误的。那究竟是怎么回事?{:9_241:}
本帖最后由 heidern0612 于 2019-3-2 11:50 编辑
定义是定义,调用是调用,调用相当于激活这个函数,不调用的话,函数只存在在内存当中。
你例2中也只是定义,没调用pre函数(pre函数也只是定义在函数内部,并没有调用。只有在调用next函数时,pre函数才算被调用。)。
函数只要你定义了,哪怕你定义的函数是错的(例如拼写错误),只要不调用,python就不会报错。 看我的箭头,理解程序运行顺序
以上仅为 个人理解
13572044595 发表于 2019-3-2 11:52
看我的箭头,理解程序运行顺序
正确 Python中不需要声明
页:
[1]