变量的查找是由内向外的

 # 全局变量
name = 'yuan'
# 定义函数
def change1():
print(name) # yuan
# 调用函数
change1()
print(name) # yuan print('################################') # 全局变量
name = 'yuan'
# 定义函数
def change1():
name = 'Lucy' # Lucy
print(name)
# 调用函数
change1()
print(name) # yuan

变量的使用、先声明、后使用

局部作用域内不能修改全局变量【解释错误】

coun+= 1
 coun = 10
def f():
# 解释二、局部作用域内有coun,应先声明,后使用
print(coun)
# 解释一、局部作用域内不能修改全局变量【错误】
# coun = 2 # coun+=1,等同于上面,两部操作 1、【使用】查找 2、【声明】修改
# coun+= 1
f()

在局部作用域内定义全局变量

 # 全局变量
name = 'yuan'
def change():
# 定义此处的name为全局变量
global name
name = 'Lucy'
print(name) # Lucy change()
print(name) # Lucy

列表

 name = ['yuan','Lucy']

 def change2():
name.append('Lucy')
print(name) # ['yuan', 'Lucy', 'Lucy'] change2()

定于局部变量为上一级变量

嵌套函数:函数套函数

 name = 'yuan'
def sd():
name = 'lili'
def df():
# 全局变量
# global name # 上一级的变量
nonlocal name name = 'yuli'
df()
print(name) print(name) # yuan
sd() # yuli
print(name) # yuan

向前引向

 # 向前引用
def a():
print("fun a")
b()
# a()出错
def b():
print("fun b")
a()

Python开发——函数【作用域】的更多相关文章

  1. python开发函数进阶:命名空间,作用域,函数的本质,闭包,作用域方法(globales)

    一,命名空间 #局部命名空间#全局命名空间#内置命名空间 #三者的顺序#加载顺序       内置命名空间(程序运行前加载)->全局命名空间(程序运行中:从上到下加载)->局部命名空间(程 ...

  2. python开发函数进阶:内置函数

    一,内置函数 #内置的模块#拿过来直接就用的:内置的函数 #!/usr/bin/env python #_*_coding:utf-8_*_ #内置的模块 #拿过来直接就用的:内置的函数 #作用域相关 ...

  3. Python开发——函数【装饰器、高阶函数、函数嵌套、闭包】

    装饰器 装饰器本质就是函数,为其他函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方法 装饰器知识储备:装饰器 = 高阶函数 + 函数嵌套 + 闭包 案例:求函数运行时间! ...

  4. python中函数作用域

    在python中,一个函数就是一个作用域 name = 'xiaoyafei' def change_name(): name = 'sthu' print('在change_name里的name:' ...

  5. python基础-函数作用域

    函数 函数对象 函数是第一类对象 函数名可以被引用 函数名可以当作参数使用 函数名可以当作返回值使用 函数名可以当作容器类型的元素 函数嵌套 嵌套调用:在函数内部中调用函数 嵌套定义:在函数内部中定义 ...

  6. Python开发——函数【基础】

    函数的定义 以下规则 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号(). 任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数. 函数的第一行语句可以选择性地使用文档字符 ...

  7. Python开发——函数【迭代器、生成器、三元表达式、列表解析】

    递归和迭代 小明问路篇解释说明 递归:小明——>小红——>小于——>小东:小东——>小于——>小红——>小明 小明向小红问路,因小红不知道,所以向小于问路,因小于不 ...

  8. python开发函数进阶:装饰器

    一,装饰器本质 闭包函数 功能:就是在不改变原函数调用方式的情况下,在这个函数前后加上扩展功能 作用:解耦,尽量的让代码分离,小功能之前的分离. 解耦目的,提高代码的重用性 二,设计模式 开放封闭原则 ...

  9. python开发函数进阶:生成器表达式&各种推导式

    一,生成器表达式 #生成器表达式比列表解析更省内存,因为惰性运算 #!/usr/bin/env python #_*_coding:utf-8_*_ new_2 = (i*i for i in ran ...

随机推荐

  1. 18.2 of的函数集中的of是Open Firmware的缩写

    内核中操作dtb的一套函数都是of开头,这个of是open firmware.dts的方法来源于open Firmware On Sun SPARC systems, the Open Firmwar ...

  2. SQL查:询结果区分大小写

    在MS SQL2005中的方法: 1)select * from user where name collate Chinese_PRC_CS_AS like 'A$%B%' escape '$'; ...

  3. ClassNotFoundException与NoClassDefFoundError异常

    方法 loadClass()抛出的是 java.lang.ClassNotFoundException异常(一般是jar冲突或者没有引入jar):方法 defineClass()抛出的是 java.l ...

  4. VDMA时序分析

    VDMA时序分析

  5. 搜狗浏览器总是打开123.sogou.com-记搜狗浏览器遭遇劫持一例

    昨日,因从网上下载了office2010破解工具,压缩包中有个文件为名为[office 2010激活工具\为保证永久激活,要先点击这个配置,再点击KMSELDIYI激活.exe],单击之后没有反应.后 ...

  6. windows本地eclispe运行linux上hadoop的maperduce程序

    继续上一篇博文:hadoop集群的搭建 1.将linux节点上的hadoop安装包从linux上下载下来(你也可以从网上直接下载压缩包,解压后放到自己电脑上) 我的地址是: 2.配置环境变量: HAD ...

  7. Java虚拟机------JVM介绍

    Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目: Java的平台无关性 Java平台和语言最开始只是SUN公司在1990年12月开始研究的一个内部项目[stealth ...

  8. JAVA 每周一 每周日 时间

    Calendar cal = Calendar.getInstance(); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd&q ...

  9. 单链表查找第i个节点

    #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct Node { char ...

  10. idea本地跑代码和链接开发机设置