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 
    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
>>>