python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套

二十八.函数进阶

  1.   "*"  和  "**"

    ① 在形参位置时   都是聚合的作用

      *args    位置参数→元组

      **kwargs   关键字参数→字典

    混合时顺序为: 位置  , *args ,  默认值 , **kwargs

    ② 在实参位置时    都是打散的作用

      *args      字符串,元组,字典 → 位置参数

      **kwargs     字典 → 关键字参数

  2.名称空间    用来存放名字(变量, 函数名, 类名, 引入的模块名)的

      1. 全局名称空间: 我们在py文件中自己写的变量, 函数.....

      2. 内置名称空间: 我们python解释器提供好的一些内置内容(print, input....)

       3. 局部名称空间: 在我们执行函数的时候.会产生一个局部名称空间.

                放的是: 函数内部的内容(变量, 函数,类...)

    名称空间可能会有无数个, 局部名称空间而言. 相对是独立的.一般互不干扰

  3.作用域

    1). 全局作用域: 内置+全局     

    2). 局部作用域: 局部

    3).  从全局去找局部 -> 找不到

       局部去找全局 -> 可以找到

    4).  globals() 查看全局作用域

       locals() 查看当前作用域

  4.函数的嵌套

    1).查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置

    2).global: 在 局部 引入 全局 的一个变量

    3).nonlocal: 内层函数(在局部作用域)引入外层离他最近的那个变量.

评论帖子的代码:

原文地址:https://www.cnblogs.com/amirky/p/10211544.html

时间: 2024-10-07 05:56:04

python之路---10 *args **kwargs 命名空间 作用域 函数的嵌套的相关文章

python之路3:文件操作和函数基础

文件操作 字符编码解码 函数基础 内置函数 一.文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,追加可写 "U"表示在读取时,可以将 \r \n \r\n自动转换成

PYTHON 之路 (二) 文件操作/函数/面向对象编程

文件操作 打开文件,得到文件句柄并赋值给一个变量 通过句柄对文件进行操作 关闭文件 打开文件的模式有: r,只读模式(默认). w,只写模式.[不可读:不存在则创建:存在则删除内容:] a,追加模式.[可读:   不存在则创建:存在则只追加内容:] "+" 表示可以同时读写某个文件 r+,可读写文件.[可读:可写:可追加] w+,写读 a+,同a "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用) rU r+U &qu

python学习第十天,名称空间与作用域,函数的嵌套,global 和 nonlocal

名称空间: 内置名称空间: 在打开pytharm是加载 全局名称空间: 在运行py文件是加载 局部名称空间(临时名称空间) :在py文件中调用时加载 def func(): ----->函数定义 pass ------->函数体 func()------------->函数调用 函数定义时:内存中只储存与函数名的对应关系,函数体的内容不储存 函数调用时:才执行函数体的内容,创建临时空间,随着函数执行结束,内存中的临时名称空间里面的内容也清空 作用域: 全局作用域:内置名称空间里的内容+全

python中参数组 *args,**kwargs,位置参数(一个星*返回元祖),关键字参数(两个星*返回字典)

# 参数组 *args def send_mail(*names): for name in names: print('%s发测试报告!'%name) send_mail() # 不传参数!send_mail('路明') # 传一个参数:发测试报告! ('路明',) 返回元祖send_mail('曹雪莲','dxl','zhangshan') # 传多个参数:发测试报告! ('曹雪莲', 'dxl', 'zhangshan') def szz(name,age,sex,addr,phone,q

小白的python之路10/31&11/1文件操作系统

文件操作系统的介绍 ext4的superblock块是超级快,innode 块是专门存放文件信息的, block count将硬盘做成block块,对操作系统而言写在block块上就可了,eg:文件10g,分成n个block块,之后对应扇区,扇区对应磁 下图的innode一层 ls -l /etc/passwd #查看文件权限 ll -i /etc/passwd #查看文件的innode号,相当于我们的身份证 df -i 查看innode号 补充磁盘满分为两种情况,一种是空间满一中是文件数目达到

【python之路21】用户登陆程序函数

一.用户登陆函数实例 1.注意:以后写函数时必须在函数第一行后按回车加入""""""""两对三引号后回车,此时会自动列出参数值,注释函数的作用.参数的用法和返回值 #!usr/bin/env python # -*- coding:utf-8 -*- def LogIn(username,password): """ 读取login文件的用户名和密码进行校验 :param username: 传入

Python基础(10)_内置函数、匿名函数、递归

一.内置函数 1.数学运算类 abs:求数值的绝对值 divmod:返回两个数值的商和余数,可用于计算页面数 >>> divmod(5,2) (2, 1) max:返回可迭代对象中的元素中的最大值或者所有参数的最大值 语法:max(iterable,key,default) 1 salaries={ 2 'egon':3000, 3 'alex':100000000, 4 'wupeiqi':10000, 5 'yuanhao':2000 6 } 7 8 print(max(salari

动态传参(*args **kwargs 无敌传参) 作用域globals locals和名称空间 函数的嵌套 关键字nonlcas global

动态传参(重点) *, ***, ** :形参: 聚合 位置参数* -> 元组 关键字** -> 字典 实参: 打散 列表, 字符串, 元素 -> * 字典 -> ** 形参的顺序(重点): 位置 *args(位置参数动态传参) 默认值 **kwargs(关键字动态传参)以后写参数. 可以随意的进行搭配, 但是, 顺序不能串 * 在形参位置. * 表示不定参数-接收的是位置参数接收到的位置参数的动态传参: 都是元组def chi(*food): # 在形参这里把传递过来的实参进行了

Python之路——函数

一.函数知识点补充 1 #参数 2 #没有参数 3 #定义函数和调用函数时括号里都不写内容 4 #有一个参数 5 #传什么就是什么 6 #有多个参数 7 #位置参数 8 9 10 #站在实参的角度上: 11 #按照位置传参 12 #按照关键字传参 13 #混着用可以:但是 必须先按照位置传参,再按照关键字传参数 14 # 不能给同一个变量传多个值 15 16 #站在形参的角度上 17 #位置参数:必须传,且有几个参数就传几个值 18 #默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用