笔记之python全局和局部变量

 
age = 18
print(id(age))  # id 1979018800


def count_age1():
    print(age)  # 18


print('count_age1()的结果')
count_age1()
print('')


def count_age2():
    age = 1  # 不报错,但会有波浪线提示,这里的age认为是新定义的局部变量
    print(age)  # 1


print('count_age2()的结果')
count_age2()
print('')


def count_age3():
    print(age)
    age = 1
    print(age)

# count_age3()  # 注意这样也会报错, local variable 'age' referenced before assignment


def count_age4():
    age += 1  # 会报错,


# count_age4()  # 报错 local variable 'age' referenced before assignment


def count_age5():
    global age  # 规范写法,在函数内部要想用函数外面的变量,得用global申明
    print(age)
    print(id(age))  # id 1979018800
    age += 1
    print(id(age))  # 赋值会改变引用 id 1979018832
    print(age)  # 19


print('count_age5()的结果')
count_age5()
print('')


def count_age6():
    global age  # 函数内部之后出现此变量名的都是全局变量
    print(age)
    print(id(age))  # id 1979018832
    age = 1
    print(id(age))  # 赋值会改变引用 id 1979018256
    print(age) # 1


print('count_age6()的结果')
count_age6()
print('')


def count_age7(i):
    age = i  # 不报错,会有波浪线提示
    age += 5
    print(age)  # 6


print('count_age7()的结果')
count_age7(age)
print('')
View Code

执行结果:

1979018800
count_age1()的结果
18
count_age2()的结果
1
count_age5()的结果
18
1979018800
1979018832
19
count_age6()的结果
19
1979018832
1979018256
1
count_age7()的结果
6
posted @ 2020-10-02 23:08  candidjuan  阅读(108)  评论(0)    收藏  举报