从所述函数中定义的另一个函数中更改函数的局部变量.Python

Kin*_*mes 2 python variables global function local

有没有办法从所述函数中定义的函数访问函数的局部变量?Y是一个带字符串的元组,我想要满足条件时所有的大写字母与下一个y中的项目保持相同.我试图使用内置函数global,但我想这只适用于全局变量.

def cap_sentence(y):  
    caps = "on"  
    def func(x):  
        if caps == "on"
            caps = "off"
            return x.capitalize()
        elif "." in x:
            caps = "on"
    return tuple(map(func, y))
Run Code Online (Sandbox Code Playgroud)

Ash*_*ary 7

nonlocal在Python 3.x中使用:

def cap_sentence(y):  
    caps = "on"  

    def func(x):  
        nonlocal caps 
        if caps == "on":
            caps = "off"
            return x.capitalize()
        elif "." in x:
            caps = "on"

    return tuple(map(func, y))
Run Code Online (Sandbox Code Playgroud)

在python 2.7中:

def cap_sentence(y):  
    cap_sentence.caps = "on"  

    def func(x):  
        if cap_sentence.caps == "on":
            cap_sentence.caps = "off"
            return x.capitalize()
        elif "." in x:
            cap_sentence.caps = "on"

    return tuple(map(func, y))
Run Code Online (Sandbox Code Playgroud)