13.变量

现在开始学习python的变量

全局变量

什么是全局变量?

在程序开始处,而且不在函数中,不再类中定义的变量,而且在所有作用域都可访问的

变量,便可叫做全局变量

如何使用

在全局变量使用的时候,需要global显示声明。一般情况下,如果函数直接调用全局变量,不做更新的话,一般没有问题,但如果有重新赋值,又没有在函数内部使用 global声明的话, 就相当于在内部创建了一个同名的局部变量,局部变量优先级要高于全局变量。

a = 3

def test():
    global a
    a = 5
    print("函数内的a值:{}".format(a))

test()
print("函数外的a值:{}".format(a))

运行结果:

函数内的a值:5
函数外的a值:5

错误:

a = 3

def test():
    a = 5
    print("函数内的a值:{}".format(a))

test()
print("函数外的a值:{}".format(a))

运行结果:

函数内的a值:5
函数外的a值:3

局部变量

什么是局部变量?

局部变量是拥有局部作用域的变量。 这样的变量只能由声明它的函数或块中访问

如何使用?

在函数内使用

a = 3

def test():

    a = 5
    print("函数内的a值:{}".format(a))

test()
print("函数外的a值:{}".format(a))

运行结果:

函数内的a值:5
函数外的a值:3

类变量

什么是类变量?

  • 类变量就是定义在类中,但是在函数体之外的变量。通常不使用self.变量名赋值的变量。类变量通常不作为类的实例变量的,类变量对于所有实例化的对象中是公用的。

  • 通过类名可以直接访问,也可以通过实例名直接访问,此变量在类中全局共享,实例之间也是全局共享

如何使用?

在类中定义变量,自调用时就开始生效,直到类销毁

class A:
    number = 0
    def add(self):
        A.number += 1

a1 = A()
a2 = A()

print(a1.number)
print(a2.number)

a1.add()
print(a1.number)
print(a2.number)


a2.add()
print(a1.number)
print(a2.number)

运行结果:

0
0
1
1
2
2

实例变量

什么是实例变量?

实例变量是定义在方法中的变量,使用self绑定到实例上的变量,只是对当前实例起作用

如何使用?

在类的内部,实例变量self.实例变量的形式访问;在类的外部使用对象名.实例变量的形式访问。

class A:

    def __init__(self,name):
        self.name = name

a1 = A("angle")
a2 = A("miku")

print(a1.name,a2.name)

运行结果:

angle miku

最后更新于

这有帮助吗?