python函数------局部变量与全局变量

局部变量(Local Variable)

  1. 局部变量:从字面理解就是只能在局部使用的变量,也就是说只能在特定的函数或子程序中可以访问的变量,它的作用域就只在此函数的内部。对于西门子PLC来说,在FC或FB预先定义一些局部变量,比如在接口数据区,在主程序调用时,可以为输入、输出等接口变量提供参数。所以说,当你再FC1中定义的局部变量,在FC2中未定义的情况下是不能直接调用的。
  2. 只在定义它的函数内有效,只是程序仅分配一次内存,函数返回后,该变量不会消失;静态局部变量的生存期虽然为整个工程,但是其作用仍与局部变量相同,即只能在定义该变量的函数内使用该变量。退出该函数后, 尽管该变量还继续存在,但不能使用它。

全局变量(Global Variable)

  1. 全局变量:顾名思义,就是对于整个程序都可以使用的变量,任何地方可以使用的变量,当然前提是你必须要定义变量,它定义在函数或子程序的外部,又可以称之为外部变量。比如对于西门子来说I、Q、M等变量。

  2. 静态全局变量:只在定义它的文件内有效,效果和全局变量一样,不过就在本文件内部。

注意:全局变量和静态变量如果没有手工初始化,则由编译器初始化为0。局部变量的值不可知。

静态局部变量与全局变量最明显的区别就在于:全局变量在其定义后所有函数都能用,但是静态局部变量只能在一个函数里面用。

例子

源码:

def discounts(price, rate):
    final_price = price * rate
    old_price = 88 #这里试图修改全局变量
    print('修改后old_price的值是:', old_price)
    return final_price

old_price = float(input('请输入原价:'))
rate = float(input('请输入折扣率:'))
new_price = discounts(old_price, rate)
print('修改后old_price的值是:', old_price)
print('打折后价格是:', new_price)

在这里插入图片描述

global关键字

global可将局部变量声明为全局变量
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_53571321/article/details/122781560