Python局部变量与全局变量区别原理解析

 更新时间:2020年07月14日 10:35:42   作者:Yangyl_00  
这篇文章主要介绍了Python局部变量与全局变量区别原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

1、局部变量

name = "Yang Li"
def change_name(name):
  print("before change:",name)
  name = "你好"
  print("after change", name)
change_name(name)
print("在外面看看name改了么?",name)

输出:

before change: Yang Li
after change 你好
在外面看看name改了么? Yang Li

2、全局变量

NAME = "alex" 
def yangjian():
   global NAME       # 已经声明,NAME就是全局的的那个变量
   print('1我的名字', NAME)
   NAME = "land"     # 修改 全局的变量
   print('2我的名字', NAME)

def qupengfei():
   name = "yang"
   print('3我的名字', NAME)  

yangjian()  
qupengfei()

输出:

1我的名字 alex  
2我的名字 land
3我的名字 yang

######## 全局变量变量名大写
######## 局部变量变量名小写
#函数中 优先读取局部变量,能读取全局变量,无法对全局变量重新赋值;但是对于可变类型,可以对内部元素进行操作;如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值

3、nonlocal

name = "刚娘"

def weihou():
  name = "陈卓"
  def weiweihou():
    nonlocal name  # nonlocal,指定上一级变量,如果没有就继续往上直到找到为止
    name = "冷静"
    print(name)
  weiweihou()
  print(name)

print(name)
weihou()
print(name)
# 刚娘
# 陈卓
# 陈卓
# 刚娘

全局与局部变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

函数返回值

要想获取函数的执行结果,就可以用return语句把结果返回

注意:

函数在执行过程中只要遇到return语句,就会停止执行并返回结果,so 也可以理解为 return 语句代表着函数的结束
如果未在函数中指定return,那这个函数的返回值为None

嵌套函数

name = "Alex"
def change_name():
  name = "Alex2"
  def change_name2():
    name = "Alex3"
    print("第3层打印",name)
  change_name2() #调用内层函数
  print("第2层打印",name)
change_name()
print("最外层打印",name)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Django框架模板的使用方法示例

    Django框架模板的使用方法示例

    这篇文章主要介绍了Django框架模板的使用方法,结合实例形式分析了Django框架模板的创建与使用相关操作技巧,需要的朋友可以参考下
    2019-05-05
  • 使用Python实现base64字符串与图片互转的详细步骤

    使用Python实现base64字符串与图片互转的详细步骤

    要将一个 Base64 编码的字符串转换为图片文件并保存下来,可以使用 Python 的 base64 模块来实现,这一过程包括解码 Base64 字符串为二进制数据,然后将这些数据写入到目标文件中,以下是一个详细的步骤演示,帮助你轻松完成这一转换,需要的朋友可以参考下
    2025-06-06
  • Python基于面向对象做一个文件夹整理工具

    Python基于面向对象做一个文件夹整理工具

    这篇文章主要给大家介绍了Python基于面向对象做一个文件夹整理工具,文中的示例代码讲解详细,具有一定的参考价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-02-02
  • python通过re正则表达式切割中英文的操作

    python通过re正则表达式切割中英文的操作

    这篇文章主要介绍了python通过re正则表达式切割中英文的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • python调用pytorch的clip模型时报错原因及解决方法

    python调用pytorch的clip模型时报错原因及解决方法

    这篇文章主要介绍了python调用pytorch的clip模型时报错,本文给大家分享问题原因及解决方法,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-08-08
  • 用Python中的turtle模块画图两只小羊方法

    用Python中的turtle模块画图两只小羊方法

    在本片文章里小编给大家分享了关于用Python中的turtle模块画图两只小羊的实例操作方法,需要的朋友们学习下。
    2019-04-04
  • pytorch模型保存与加载中的一些问题实战记录

    pytorch模型保存与加载中的一些问题实战记录

    一般来说,保存模型是把参数全部用model.cpu().state_dict(),然后加载模型时一般用model.load_state_dict(torch.load(model_path)),下面这篇文章主要给大家介绍了关于pytorch模型保存与加载中的一些问题实战记录,需要的朋友可以参考下
    2022-10-10
  • 解决python运行启动报错问题

    解决python运行启动报错问题

    这篇文章主要介绍了解决python运行启动报错问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • django反向解析和正向解析的方式

    django反向解析和正向解析的方式

    这篇文章主要介绍了django反向解析和正向解析的方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • Python Web框架Flask中使用新浪SAE云存储实例

    Python Web框架Flask中使用新浪SAE云存储实例

    这篇文章主要介绍了Python Web框架Flask中使用新浪SAE云存储实例,本文是对SAE云存储的简单封装,需要的朋友可以参考下
    2015-02-02

最新评论