Python自动化开发函数02

Python自动化开发-函数02

1.函数的全局变量与局部变量

  了解局部变量和全局变量的定义

      在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。当全局变量与局部变量同名时:在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。

例1:全局变量定义

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#全局变量定义:没有缩进并且在顶头定义的变量
name="lucy"
print(name)
View Code

代码运行结果:

lucy

例2:局部变量定义

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#局部变量定义:有缩进并且没有顶头定义的变量
def test01():
    name="lily"
    print(name)
test01()
View Code

代码运行结果:

lily 

例3:局部变量和全局变量混合使用

#!/usr/bin/env python
# -*- coding:utf-8 -*-

# #全局变量定义:没有缩进并且在顶头定义的变量
name="lucy"

#局部变量定义:有缩进并且没有顶头定义的变量
def test01():
    name="shiying"
    print(name)
test01()
print(name)
View Code

代码运行结果:

shiying
lucy

例4:定义全局变量方法二:使用global定义全局变量

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#全局变量定义方法二:使用global定义全局变量
name="haxi"
def test01():
    global name
    name="shiying"
    print(name)
test01()
print(name)
View Code

代码运行结果:

shiying
shiying

需要注意:

  a.优先读取局部变量,能读取全局变量,无法对全局变量重新赋值 NAME=“fff”,

       b.如果函数中有global关键字,变量本质上就是全局的那个变量,可读取可赋值 NAME=“fff”

例1:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#全局变量定义方法二:使用global定义全局变量
name="haxi"
def test01():
    global name
    name="shiying"
    print(name)

def test02():
    print(name)

test01()
print(name)
View Code

代码运行结果:

shiying
shiying

例2:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

name=["lixian","wangjing"]
def test02():
    print(name)

#全局变量定义方法二:使用global定义全局变量

def test01():
    global name
    name.append("lucy")
    print(name)

test02()
test01()
print(name)
View Code

代码运行结果:

['lixian', 'wangjing']
['lixian', 'wangjing', 'lucy']
['lixian', 'wangjing', 'lucy']

例3:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

NAME="lisa"
def test03():
    name="liyong"
    print(name,NAME)
    def test04():
        name01="litian"
        print(name01)
    test04()

test03()
View Code

代码运行结果:

liyong lisa
litian

  

2.函数-前向引用

例1:函数的前向引用

#!/usr/bin/env python
# -*- coding:utf-8 -*-

def bar():
    print("from bar")

def foo():
    print("from foo")
    bar()

foo()
View Code

代码运行结果:

from foo
from bar

你不向我走来,我便向你走去。
原文地址:https://www.cnblogs.com/renyongbin/p/15743655.html