# 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 函数和命名空间的更多相关文章

  1. 10,*args **kwargs 函数的命名空间。

    用户传入到函数中的实参数量不定时,或者是为了以后拓展, 此时要用到动态参数*args,**kwargs(万能参数.) *args(接受的是所有的位置参数) 以元组的形式返回给函数调用者. **kwar ...

  2. python函数对象-命名空间-作用域-02

    函数对象 函数是第一对象: # 函数名指向的值可以被当做参数传递 函数对象的特性(*****灵活运用,后面讲装饰器会用到) 函数名可以像变量一样被传递 # 变量可以被传递 name = 'jason' ...

  3. day11——函数名的使用、f格式化、迭代器、递归

    day11 函数名的第一类对象及使用 1.可以当作值被赋值给变量 def func(): print(1) print(func) a = func a() 2.当作元素存放在容器中 def func ...

  4. day11 函数

    day11 函数 一.函数基础 """ 1 什么是函数 函数是盛放代码的容器:把实现某一功能的代码放到一个函数内就制造一个工具 2 为何要用函数 没有用函数之前程序的问题 ...

  5. day11函数的进阶动态参数,命名空间,作用域,第一类对象

    一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0, ...

  6. 【Python 函数对象 命名空间与作用域 闭包函数 装饰器 迭代器 内置函数】

    一.函数对象 函数(Function)作为程序语言中不可或缺的一部分,但函数作为第一类对象(First-Class Object)却是 Python 函数的一大特性. 那到底什么是第一类对象(Firs ...

  7. DAY11 函数(二)

    一.函数的对象 1.1定义:函数名就是存放了函数的内存地址,存放了内存地址的变量都是对象,即 函数名 就是 函数对象 1.2函数对象的应用 1 可以直接被引用 fn = cp_fn def fn(): ...

  8. C++(十六) — 类中引用成员函数、命名空间的使用

    1.为什么类中引用成员函数? 类将属性和方法做了封装.类是一种数据类型,也就是:固定大小内存块的别名. 类的定义是一个抽象的概念,定义时不分配内存,当用类定义对象时,才分配一个固定大小的内存块. 此时 ...

  9. Python:函数的命名空间、作用域与闭合函数

    1,参数陷阱 如果默认参数的只是一个可变数据类型,那么每一次调用的时候,如果不传值就共用这个数据类型的资源. 2,三元运算 c=a if a>b else b#如果a>b返回a,否则,返回 ...

随机推荐

  1. Windows的静态库使用步骤

    windows库程序: 1.静态库程序 - 运行时不独立存在,会被链接到可执行文件或者动态库中,目标程序的归档. 文件扩展名:LIB 2.动态库程序 - 运行时独立存在,不会被链接到可执行文件或其他动 ...

  2. Bootstrap Multiselect 设置 option

    $.ajax({ type: 'post', url: "helper/ajax_search.php", data: {models: decodeURIComponent(br ...

  3. vb 定时执行php程序

    托盘模块 Option Explicit Public Const NIF_ICON = &H2 Public Const NIF_MESSAGE = &H1 Public Const ...

  4. smartJS 0.1 API 讲解 - PromiseEvent

    上篇简单的介绍smartjs了一些通用方法的api.这篇介绍基础的PromiseEvent(这个名字一直没想好,以前准备用callbacks的,但避免与jquery混淆,st的命名空间可以直接挂到$上 ...

  5. 推荐linux命令在线查,简约而不简单

    1.相关介绍: 网址:http://blog.51yip.com/linux/1518.html#more-1518 2.Linux 命令在线sce 网址:http://linux.51yip.com ...

  6. jQuery特效:图片的轮播

    Flexslider图片轮播.文字图片相结合滑动切换效果 地址:http://www.helloweba.com/view-blog-265.html 示例:http://www.helloweba. ...

  7. DevExpress 控件使用技巧

    DevExpress是非常主流的.NET控件,眼下全世界和中国都用非常多用户使用,只是因为是英文版,初次接触的同学可能会认为困难.这里就总结DevExpress常见的10个使用技巧. 1.TextEd ...

  8. 【转】防止CListCtrl闪烁的几种方法

    转载出处:http://blog.sina.com.cn/s/blog_5ee42ba30100g50j.html 1.使用SetRedraw禁止窗口重绘,操作完成后,再恢复窗口重绘 m_ctlLis ...

  9. poj 1322 Chocolate (概率dp)

    ///有c种不同颜色的巧克力.一个个的取.当发现有同样的颜色的就吃掉.去了n个后.到最后还剩m个的概率 ///dp[i][j]表示取了i个还剩j个的概率 ///当m+n为奇时,概率为0 # inclu ...

  10. Android无线测试之—UiAutomator UiObject API介绍六

    手势操作 1.手势相关操作 2.相关API介绍 返回值 API 描述 boolean performMultiPointerGesture(PointerCoords[]... touches) 执行 ...