Python如何在main中调用函数内的函数

Python如何在main中调用函数内的函数

一般在Python中在函数中定义的函数是不能直接调用的,但是如果要用的话怎么办呢?
一般情况下:

def a():#第一层函数
    def b():#第二层函数
        print('打开文件B')
b()#第二层中的函数直接调用


结果显示:

Traceback (most recent call last):
  File "C:/Users/rog/Desktop/wenzhang.py", line 4, in <module>
    b()
NameError: name 'b' is not defined

但是又要用,怎么办呢?这时候只要在函数a中返回b函数的函数名,就可以使用b函数了。

def a():#第一层函数
    def b():#第二层函数
        print('打开文件B')
    return(b)
s=a()#首先要调用一次a函数,将a函数的返回值给s,这里也就是b函数
s()

结果:

打开文件B
>>> 

如果需要调用同一个函数内的多个函数:
这里先设置了一个全局变量Position_number,然后在a()中说明这个全局变量,再通过全局变量的改变,来调用a()中不同的函数。

Position_number=0
def a():#第一层函数
    global Position_number
    def b():#第二层函数
        print('打开文件B')
    def c():
        print('打开文件C')
    def d():
        print('打开文件D')
    if(Position_number==0):
        return(b)
    if(Position_number==1):
        return(c)
    if(Position_number==2):
        return(d)
s=a()                   #首先要调用一次a函数,将a函数的返回值给s,这里也就是b函数
s()                     #运行b函数
Position_number=1       #改变Position_number,使a()的返回值改变成c函数
s=a()                   #将c函数赋给s
s()                     #运行c函数
Position_number=2       #改变Position_number,使a()的返回值改变成c函数
s=a()                  #将d函数赋给s
s()                    #运行d函数

结果:

打开文件B
打开文件C
打开文件D
>>> 
  • 10
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

留在街角

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值