当前位置: 首页 > 面试题库 >

Python非本地语句

龙毅
2023-03-14
问题内容

Python nonlocal语句有什么作用(在Python 3.0及更高版本中)?

官方Python网站上没有文档,help("nonlocal")也无法使用。


问题答案:

比较一下,不使用nonlocal

x = 0
def outer():
    x = 1
    def inner():
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)

# inner: 2
# outer: 1
# global: 0

对此,使用nonlocal,其中inner()x是现在还outer()x

x = 0
def outer():
    x = 1
    def inner():
        nonlocal x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)

# inner: 2
# outer: 2
# global: 0

如果要使用global,它将绑定x到正确的“全局”值:

x = 0
def outer():
    x = 1
    def inner():
        global x
        x = 2
        print("inner:", x)

    inner()
    print("outer:", x)

outer()
print("global:", x)

# inner: 2
# outer: 1
# global: 2


 类似资料:
  • 问题内容: 我认为将import语句放在靠近使用它的片段的位置,可以通过使其依赖项更加清晰来提高可读性。Python会缓存吗?我应该在乎吗?这是一个坏主意吗? 还有一点理由:这是针对使用库中奥秘功能的方法的,但是当我将方法重构为另一个文件时,我没有意识到我会错过外部依赖项,直到遇到运行时错误。 问题答案: 其他答案似乎对真正的工作方式略有困惑。 这个说法: 大致等效于以下语句: 也就是说,它将在当

  • 问题内容: 我知道应该避免本地进口,但是在这种情况下需要特殊情况。这是一个私有存储库,由于服务器上缺少私有密钥,因此与绝对URL一起使用时,heroku buildpack在该阶段失败。 现在我得到这个错误。 所有导入路径都已更改为本地版本,那么还有什么可以使软件包成为“非本地”文件呢?我该如何解决? 问题答案: 我修好了它。问题是root软件包在中。一旦我将软件包移到错误处,错误就消失了(因此,

  • 问题内容: 我正在使用python进行数据清理练习,正在清理的文本包含我要删除的意大利语单词。我一直在网上搜索是否可以使用nltk之类的工具包在Python上执行此操作。 例如给出一些文本: 我想留下: 有人知道如何做到这一点吗?任何帮助将非常感激。 问题答案: 您可以使用NLTK的语料库: 不幸的是, 艾奥 恰好是一个英语单词。通常,可能很难确定一个单词是否为英语。

  • 我目前正在开发一个智能助手程序(基本上,它只是听用户说什么,然后根据用户说的内容对代码进行处理)。直到今天,当我切换到笔记本电脑时,它一直工作正常。程序不会打印出任何错误,但也不会打印出我说的话。我正在使用Python语音识别库3.8版。1.有人知道这个图书馆的替代品吗?如果是,请尝试解释我将如何“即时”使用它(无需先录制文件,然后将其发送到服务器,更像是实时语音)。 编辑:我忘了在帖子里说,我正

  • 本文向大家介绍python语言基本语句用法总结,包括了python语言基本语句用法总结的使用技巧和注意事项,需要的朋友参考一下 python语句与语法 1.python简单语句的基本介绍 上面的代码利用了Python的while循环,它是Python最通用的循环语句。简单的说,它的组成为:while这个单词,之后跟一个其结果为真或假的表达式,再接一个当顶端测试为真(这时的True看做是永远为真)时

  • LanguageID 是指定字母和数字的组合作为语言标识符或分类的代码。 LanguageID 遵循 RFC 1766 标准格式: <languagecode2>-<country/regioncode2>,其中 languagecode2 是来自 ISO 639-1 的两个小写字母代码,而 country/regioncode2 是来自 ISO 3166 的两个大写字母代码。 这是一些 Lang