day11 函数和命名空间
# def my_sum(*args):
# sum_2=0
# for i in args:
# sum_2+=i
# return sum_2
#
#
# ret=my_sum(1,2,3,4)
# print(ret)
#-------------------------------------------------------------------
#命名空间, 名称空间 namespa
# 局部命名空间:每个函数都拥有自己的命名空间
# 全局命名空间:写在函数外边的变量名
#内置命名空间:python解释器启动之后就可以使用的名字 #python的解释器要运行起来
# 加载顺序
# 所有内置命名空间中的名字-->然后按照顺序加载全局命名空间中的名字
#局部命名空间的名字:在调用函数的时候产生,并且随着调用的结束而消失 # 函数的嵌套定义
# def func():
# def qqxing():
# print('我是qqxing')
# qqxing() # func() # 函数的嵌套定义
# 作用域: 一个名字可以使用的区域
#全局作用域: 内置名字空间和全局名字空间中的名字都属于全局名字空间域
#局部作用域:局部名字空间中的名字属于局部作用域
#局部作用域可以使用全局做用域中的变量
#而全局作用域不能使用局部作用域中的变量
#局部作用域中还可以嵌套更小的局部作用域
# 作用域链:小范围作用域可以使用大范围的变量 但作用域链是单向的不能反向使用
# n=0
# def funcl():
# def func2():
# print(n)
# func2()
# funcl()
# --------------------------------------------------
# def func():
# a=10
# b=20
# print(locals()) # 保存了当前作用域中的变量 # n=10
# m=22
# print(globals())# 保存了在全局作用域中的名字和值
# print(locals())#中的内容会跟根据执行中的位置来决定作用域中的内容
# 如果在全局执行的话
#globals和locals打印的结果是一致的 #函数的嵌套和嵌套的嵌套定义
# 命名空间: 三种 内置全局 局部
# 关于作用域: 两种 全局和局部
# 作用域的特点: 作用域链 名字的使用是从小范围到大范围的就近事件
#globals和locals的方法 # n=1
# def func():
# global n
# n=n+1
#
# func() # 小范围可以使用大范围的 但不能修改
# print(n) # 如果想要修改 使用global关键字 -----尽量避免
# 如果想要修改最近拥有改变量的外层函数的 使用nonlocal--不影响全局
# n=0
# def func():
# n=1
# def func2():
# global n
# n+=1
# func2()
# print(n)
#
# func()
# print(n)
#-------------------------------------#跟上边的一起
#第一类对象的概念
# 函数的名字可以赋值
# 可以作为一个数据结构的元素
#可以作为一个函数的参数
#可以作为一个函数的返回值 # def func():
# print('in func')
# f=func()
# print(f)
day11 函数和命名空间的更多相关文章
- 10,*args **kwargs 函数的命名空间。
用户传入到函数中的实参数量不定时,或者是为了以后拓展, 此时要用到动态参数*args,**kwargs(万能参数.) *args(接受的是所有的位置参数) 以元组的形式返回给函数调用者. **kwar ...
- python函数对象-命名空间-作用域-02
函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' ...
- day11——函数名的使用、f格式化、迭代器、递归
day11 函数名的第一类对象及使用 1.可以当作值被赋值给变量 def func(): print(1) print(func) a = func a() 2.当作元素存放在容器中 def func ...
- day11 函数
day11 函数 一.函数基础 """ 1 什么是函数 函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造一个工具 2 为何要用函数 没有用函数之前程序的问题 ...
- day11函数的进阶动态参数,命名空间,作用域,第一类对象
一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0, ...
- 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】
一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...
- DAY11 函数(二)
一.函数的对象 1.1定义:函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 1.2函数对象的应用 1 可以直接被引用 fn = cp_fn def fn(): ...
- C++(十六) — 类中引用成员函数、命名空间的使用
1.为什么类中引用成员函数? 类将属性和方法做了封装.类是一种数据类型,也就是:固定大小内存块的别名. 类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块. 此时 ...
- Python:函数的命名空间、作用域与闭合函数
1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回 ...
随机推荐
- js 数组取出最大值最小值和平均值的方法
1.直接遍历数组 ,,,,,,,]; ]; ;i<arr.length;i++){ if(max<arr[i]) max=arr[i]; } 2.借用Math的方法 ,,,,,,,]; v ...
- 安装vm虚拟机
1.本次win10系统安装vmware workstation 下载地址:http://www.ihacksoft.com/vmware-workstation-10-0-4.html 2.镜像使用 ...
- Python笔记8:网络编程
python内置封装了很多常见的网络协议的库,因此python成为了一个强大的网络编程工具,这里是对python的网络方面编程的一个简单描述. urllib 和 urllib2模块 urllib 和u ...
- 在项目中用过Spring的哪些方面?及用过哪些Ajax框架?
在项目中用过Spring的哪些方面?及用过哪些Ajax框架? 解答:在项目使用过Spring IOC ,AOP,DAO,ORM,还有上下文环境. 在项目使用过Ext,Juery等Ajax框架.
- .NET中二进制图片的存储与读取
判断HttpContext是否为空: string configPath = "img/defaultPhoto.png"; if (HttpContext.Current != ...
- 蓝桥杯 第三届C/C++预赛真题(10) 取球游戏(博弈)
今盒子里有n个小球,A.B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断. 我们约定: 每个人从盒子中取出的球的数目必须是:1 ...
- RecyclerView上拉隐藏Toolbar,下拉显示
RecyclerView下拉隐藏Toolbar,上拉显示效果图 先说个事:最近我准备做个开源的博客园android客户端!符合Google最新的material design设计风格的!不知道有没有小 ...
- hdu 4055(经典问题)
总是不能正确的将一个大问题变成子问题,而且又找不到状态转移方程. 直接导致这题想了5个小时最后还是无果... 谨记! Number String Time Limit: 10000/5000 MS ( ...
- 提高SDN控制器拓扑发现性能
原文由我发表在sdnlab.com.原文链接:http://www.sdnlab.com/15425.html SDN网络的一大特点就是资源由控制器集中管理,控制器管理网络,最基本的当然需要知道网络的 ...
- MySQL 1067
今天在云服务器上装mysql的时候,启动突然报了一个“1067 进程意外终止”的错误,这个错误之前是遇到过的,之前因为my.ini配置basedir路径的时候没有正确配置导致了这个错误,但是今天又出现 ...