作用域可以理解为变量的有效范围
#例
def func(num):
num =2
print(num)
num =1
func(num)
print(num)
#输出为2,1,一步一步理解,先不看定义的函数,函数在调用的时候在其作用,首先第一步,创建了一个变量num,赋值为整数1
#接着调用函数func(),传递实参num=1,
#函数中 num = 2只是改变函数自己的num变量,创建的实参num=1的值并没有被改变
---------------------------------------------------------------------------------------------------------
#在函数中访问到函数外的变量
def func():
global num
num =2
print(num)
num =1
func()
num =3
print(num)
#输出为2,2。第一步创建一个变量名称为num的变量,赋值为整数1
#调用func()函数,在func()函数中,创建了一个全局变量num,并对全局变量赋值为整数2,
#由于全局变量可以访问到函数外的变量,所以函数外的num同样是被赋值为2,也就是说两个函数内的变量和函数外的num是同一个变量
-----------------------------------------------------------------------------------------------------------------
#如果全局变量不存在,也会新建一个
def func():
global num
num =4
print(num)
func()
print(num)
----------------------------------------------------------------------------------------
慎用global变量
良好的代码结构和稳定的代码内容往往还是依赖于低耦合
不建议广泛使用这种跨域的数据访问
可以避免潜在而且非常难以排查的错误
-----------------------------------------------------------------------------------------------
a =max(1, 2, -9, 4)
print(a)
-----------------------------------------------------------------------------------------------
n1 =255
n2 =1000
print(hex(n1))
print(hex(n2))