Python函数中的全局变量详解

目录
  • 1、什么是全局变量?
  • 2、在函数外部定义的变量是全局变量。
  • 3、在函数内部定义中添加global关键词后变成全局变量。
  • 总结

1、什么是全局变量?

在Python中,全局变量指的是可以作用于函数内部和外部的变量。

在这里有两种情况:在函数的外部定义和内部定义添加global关键词变成全局变量。

2、在函数外部定义的变量是全局变量。

假设一个变量在函数的外部定义,那么这个函数就可以在函数的内部访问,也可以在函数的外部的访问。

示例:定义一个全局变量b,然后定义一个函数a,最后在该函数的内部和外部输出全局变量m的值,​​代码​​如下:

b  = '我爱Python,我在学习Python!'      # 定义全局变量
def a():                                 # 定义函数
    print('函数内部全局变量b=',b)        # 在函数内部输出全局变量
a()
print('函数外部全局变量b=',b)        # 在函数外部输出全局变量

运行结果如下:

函数内部全局变量b= 我爱Python,我在学习Python!
函数外部全局变量b= 我爱Python,我在学习Python!
>>>

3、在函数内部定义中添加global关键词后变成全局变量。

在Python中,内部定义的函数中,添加关键词global后,改变量就变成了全局变量。在函数的外部也可以访问到该变量,同时还可以在函数的内部进行修改。

示例:定义相同名称不同内容的全局变量和局部变量b,并输出它们的值:

b = '我爱Python,我在学习Python!'    # 定义全局变量
print('函数外部全局变量b=',b)      # 在函数外部输出全局变量
def a():                # 定义函数
  b = '人生苦短,我用Pyhon!'    # 定义局部变量
  print('函数内部局部变量b=',b)    # 在函数内部输出全局变量
a()                   # 调用函数
print('函数外部全局变量b=',b)      # 在函数外部输出全局变量

运行结果如下:

函数外部全局变量b= 我爱Python,我在学习Python!
函数内部局部变量b= 人生苦短,我用Pyhon!
函数外部全局变量b= 我爱Python,我在学习Python!
>>>

从上面的结果可以看出,内部变量(局部变量)可以和外部变量(全局变量)重名,不影响全局变量的值。

当然在函数内部变量前面添加关键字global,就变成了全局变量了,代码如下:

b = '我爱Python,我在学习Python!'   # 定义全局变量
print('函数外部全局变量b=',b)      # 在函数外部输出全局变量
def a():                # 定义函数
  global b              # 添加global关键字
  b = '人生苦短,我用Pyhon!'    # 定义局部变量
  print('函数内部全局变量b=',b)    # 在函数内部输出全局变量
a()                   # 调用函数
print('函数外部全局变量b=',b)      # 在函数外部输出全局变量

运行结果如下:

函数外部全局变量b= 我爱Python,我在学习Python!
函数内部全局变量b= 人生苦短,我用Pyhon!
函数外部全局变量b= 人生苦短,我用Pyhon!
>>>

从上面的结果可以看出,在函数的内部也可以修改全局变量的值。

总结

到此这篇关于Python函数中的全局变量详解的文章就介绍到这了,更多相关Python全局变量内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python函数局部变量、全局变量、递归知识点总结

    函数局部变量 全局变量 及其作用域 #简单类型(int str等)变量的局部变量与全局变量及其作用域的关系 name = "xxx" #第一级顶头定义的变量都称为全局变量,其作用域从变量定义的位置开始到此程序结束 def Print_Name(): print("name before change:", name) #由于name在此函数之前已经被定义为全局变量,此处函数读取变量name是读取的全局变量name "xxx",函数内部就不能再定义

  • python通过函数属性实现全局变量的方法

    本文实例讲述了python通过函数属性实现全局变量的方法.分享给大家供大家参考.具体分析如下: python的函数可以定义属性,而且是全局的,这个非常好用,例如用于数字累加,你不用专门去定义一个全局变量,使用函数的属性即可. def add(x=1): try: add.sum += x except AttributeError: add.sum = x return add.sum print add(3) print add(4) print add(10) class Ax(object

  • Python函数中的全局变量详解

    目录 1.什么是全局变量? 2.在函数外部定义的变量是全局变量. 3.在函数内部定义中添加global关键词后变成全局变量. 总结 1.什么是全局变量? 在Python中,全局变量指的是可以作用于函数内部和外部的变量. 在这里有两种情况:在函数的外部定义和内部定义添加global关键词变成全局变量. 2.在函数外部定义的变量是全局变量. 假设一个变量在函数的外部定义,那么这个函数就可以在函数的内部访问,也可以在函数的外部的访问. 示例:定义一个全局变量b,然后定义一个函数a,最后在该函数的内部和

  • python中print()函数的“,”与java中System.out.print()函数中的“+”功能详解

    python中的print()函数和java中的System.out.print()函数都有着打印字符串的功能. python中: print("hello,world!") 输出结果为:hello,world! java中: System.out.print("hello,world!"); 输出结果为:hello,world! 我们可以看到,这两个函数的用法是一样的 print()函数还有这种用法: print("1+1=",1+1) 输出结

  • 对python函数签名的方法详解

    函数签名对象,表示调用函数的方式,即定义了函数的输入和输出. 在Python中,可以使用标准库inspect的一些方法或类,来操作或创建函数签名. 获取函数签名及参数 使用标准库的signature方法,获取函数签名对象:通过函数签名的parameters属性,获取函数参数. # 注意是小写的signature from inspect import signature def foo(value): return value # 获取函数签名 foo_sig = signature(foo)

  • Python Pandas 中的数据结构详解

    目录 1.Series 1.1通过列表创建Series 1.2通过字典创建Series 2.DataFrame 3.索引对象 4.查看DataFrame的常用属性 前言: Pandas有三种数据结构:Series.DataFrame和Panel.Series类似于数组:DataFrame类似于表格:Panel可视为Excel的多表单Sheet 1.Series Series是一种一维数组对象,包含一个值序列,并且包含数据标签,称为索引(index),通过索引来访问数组中的数据. 1.1通过列表创

  • python lambda表达式在sort函数中的使用详解

    1.lambda表达式一般用法 语法: lamda argument:expression example: add = lambda x, y: x+y print(add(10, 20))<br data-filtered="filtered">>>> 30 2.lambda表达式在sort函数中的使用 假如a是一个由元组构成的列表,对该列表进行排序时,我们需要用到参数key,也就是关键词,如下面代码所示,lambda是一个匿名函数,是固定写法:x表示

  • python函数的高级应用详解

    前言 函数是我们所熟知的,在python中函数的定义格式如下: def 函数名(形式参数): ​ 函数体 ​ 函数的封装就是实现代码块的复用,python内置了一些基础的函数,开发者也可以自己定义函数,函数只能先定义,再进行调用. 一.函数调用的步骤 1.程序遇到函数调用的情况时,暂停执行 2.将实际参数值传递给函数参数 3.执行函数体语句 4.返回值并继续向下执行 二.参数的打包和解包 打包 ​ 参数的打包指的是多个参数可以同时处理,也叫可变长度参数, 可变长度参数在定义函数时主要有两种形式*

  • Python函数属性和PyC详解

    目录 函数属性 自定义属性 查看函数对象属性 属性和字节码对象PyCodeObject 总结 函数属性 python中的函数是一种对象,它有属于对象的属性.除此之外,函数还可以自定义自己的属性.注意,属性是和对象相关的,和作用域无关. 自定义属性 自定义函数自己的属性方式很简单.假设函数名称为myfunc,那么为这个函数添加一个属性var1: myfunc.var1="abc" 那么这个属性var1就像是全局变量一样被访问.修改.但它并不是全局变量. 可以跨模块自定义函数的属性.例如,

  • python线程中同步锁详解

    在使用多线程的应用下,如何保证线程安全,以及线程之间的同步,或者访问共享变量等问题是十分棘手的问题,也是使用多线程下面临的问题,如果处理不好,会带来较严重的后果,使用python多线程中提供Lock Rlock Semaphore Event Condition 用来保证线程之间的同步,后者保证访问共享变量的互斥问题 Lock & RLock:互斥锁 用来保证多线程访问共享变量的问题 Semaphore对象:Lock互斥锁的加强版,可以被多个线程同时拥有,而Lock只能被某一个线程同时拥有. E

  • Python函数参数分类原理详解

    一.参数的定义 1.函数的参数在哪里定义 在python中定义函数的时候,函数名后面的括号里就是用来定义参数的,如果有多个参数的话,那么参数之间直接用逗号,隔开 案列: # 利用函数的参数,定义一个可以完成任意两个数相加的函数 def add_num(a,b): c = a + b print(c) 2.带参数的函数调用: 函数定义了参数,那么调用函数的时候就需要传入参数 add_num(11,22) #运行结果 33 上面的案列中,我们定义函数的时候在函数名后面的括号里定义的参数叫做形参, 而

  • JavaScript箭头函数中的this详解

    前言 箭头函数极大地简化了this的取值规则. 普通函数与箭头函数 普通函数指的是用function定义的函数: var hello = function () { console.log("Hello, Fundebug!"); } 箭头函数指的是用=>定义的函数: var hello = () => { console.log("Hello, Fundebug!"); } JavaScript箭头函数与普通函数不只是写法上的区别,它们还有一些微妙的不

随机推荐