当前位置:网站首页>实例042:变量作用域

实例042:变量作用域

2022-08-10 02:01:00 懒笑翻

题目:学习使用auto定义变量的用法。

程序分析:python中的变量作用域。

Python 局部变量global,全局变量local ,非局部变量nonlocal ,Enclosing function locals作用域_懒笑翻的博客-CSDN博客

一、解题思路:

在C中,auto自动存储类型,一般我们很少在程序中显示申明变量为auto类型。因为代码块中的变量缺省情况下就是这种类型,这种类型的变量存放于堆栈中,
也就是说只有程序执行这些代码块时这种自动变量才会被创建,代码块执行结束后自动变量便被释放。
auto int num = 1
也就是说,只有再执行这行代码
auto变量中的num才会存在,这行代码执行结束后,这个auto变量将会自动释放。

我们知道Python不需要申明变量,变量一旦初始化,类型和值便确定了。根据值得类型来确定变量的类型。

在Python中,不存在auto关键字
# import keyword
#
# print(keyword.kwlist)
# print(keyword.iskeyword('auto'))
如果你试图在pycharm中输入auto,编辑器大概会提示你输入autopep8,不要以为这是auto在python中的写法
使用autopep8,以PEP 8规范,自动排版Python代码
autopep8是一个开源的命令行工具,它能够将Python代码自动格式化为PEP8风格。autopep8使用pycodestyle工具来决定代码中的哪部分需要被格式化,这能够修复大部分pycodestyle工具中报告的排版问题。autopep8本身也是一个Python语言编写的工具,我们可以直接使用pip进行安装

没有auto关键字的话,可以使用变量作用域来举例

在python中默认局部变量local 全局变量用global

二、代码:

def my_global():
    global g
    g = 99
    print('my_global', g)
    n = 11

    def my_nonlocal():
        # nonlocal 一般是用在闭包函数中, nonlocal声明的变量在上级局部作用域内,而不是全局定义
        nonlocal n
        n = 22

    my_nonlocal()
    print('n', n)


my_global()
print('g', g)

三、运行结果

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓懒笑翻诚邀你点击下方一起来学习讨论↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

原网站

版权声明
本文为[懒笑翻]所创,转载请带上原文链接,感谢
https://lanxf.blog.csdn.net/article/details/126249401