无意中发现python中可以有同名函数存在不会报错。
代码如下:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# @ Time    :2020/9/7 22:56
# @ Author  :BT烤翅
"""题目:练习函数调用。"""


def hello():
    print('frist_hello world')


hello()


def hello():
    print('second_hello_world')


hello()



输出如下:

frist_hello world
second_hello_world

如果注释掉第一个调用函数,则只会输出第二个函数体内内容

second_hello_world

注释掉第二个则反之

frist_hello world

如果把第一个函数体注释掉保留两个函数调用,第二个函数体上下各调用一次,则会报错。


# def hello():
#     print('frist_hello world')


hello()


def hello():
    print('second_hello_world')


hello()

NameError: name ‘hello’ is not defined

以此得出,在python中,调用函数会向上寻找,如果找到不管上面有多少个,只会就近调用,如果没有函数体则会报错,不管下面有没有。

以上是我自己的猜想,如有错误,请指出。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐