首页 > 其他分享 >9.函数参数 与 名称空间

9.函数参数 与 名称空间

时间:2024-04-15 19:11:22浏览次数:29  
标签:函数 print 函数参数 参数 名称 类型 空间

【一】函数作为参数

1)分类

1.形参

  • 函数定义时,括号内声明的值;用来接收外部传来的值

2.实参

  • 函数调用时,括号内传入的得值;常是常量,变量,表达式或三者组合

2)位置参数

  • 参数数量不对会报错
  • 必须按照顺序传入,否则顺序会乱

3)关键字参数

  • 需指定定义时的名字,可不按位置传入

4)默认参数

  • 函数定义时,就给一个参数赋了值
  • 如果给了新值就会覆盖原来的值

5)可变长度参数

​ 函数调用时,实参个数可以不固定

1.可变长位置参数(*args)

def eg(a, b, *args):
    print(a, b)  # 1 2
    print(args)  # (3, 4, 5)
eg(1, 2, 3, 4, 5)

2.可变长关键字参数(**kwargs)

def eg(a, b, **kwargs):
    print(a, b)  # 1 2
    print(kwargs)  # {'c': 3, 'd': 4}
eg(a=1, b=2, c=3, d=4)

3.*解包

使用 *+可迭代类型 就能将每一个元素单独解包出来

print([1, 2, 3])  # [1, 2, 3]
print(*[1, 2, 3])  # 1 2 3
print(*{'name': 'diva'})  # name

6)命名关键字参数

定义形参时,用*隔开

  • *前:
    • 参数支持位置和关键字传参
    • 位置参数在前,关键字参数在后
  • *后:
    • 参数必须按照关键字传参
    • 默认参数允许在位置参数后

7)组合使用

  • 位置参数、默认参数、*args 、**kwargs
  • 位置参数必须在关键字在前;不能重复赋值

【二】类型特殊语法参数Optional

1)注释概念

定义函数的位置参数时可以指定参数类型

2)基本类型注释

1.不可变数据类型

  • 数字,字符串,布尔

    def 函数名(参数:指定类型)-> 返回值类型:
    	代码块
    	return 返回值
    

2.可变数据类型

  • 字典,列表,元组,集合

  • Dict,List,Tuple,Set

    #导入类型模块,以支持类型注解
    from typing import 类型
    def 函数名(参数:指定类型[不可变类型]) -> 返回值类型:
        代码块
        return 返回值
    # 字典的{键:值}都要约束
    

3.Union类型

  • 允许参数接受多种不同类型的数据

    from typing import Union
    def 函数名(参数:Union[类型1,类型2]) -> Union[类型1,类型2]:
        代码块
        return 返回值
    

4.Optional 类型

  • 参数可以指定类型或None

    from typing import Optional 
    def 函数名(参数:Optional[类型1]) -> Optional[None]:
        代码块
        return 返回值
    

【三】名称空间

1)内建名称空间

  • Python解释器自带的名称空间
  • 第一个加载的名称空间

2)全局名称空间

  • 随着内建名称空间加载完成
  • 用户创建的,如变量名、函数名、类名

3)局部名称空间

  • 函数内部定义的变量
  • 随着函数而存在

4)加载顺序

  • 加载顺序

    • 内建名称空间->全局名称空间->局部名称空间,
  • 查找顺序

    • 局部名称空间->全局名称空间->内置名称空间。

【四】作用域

1)变量作用域

1.Local(局部变量)

  • 用于暂时存放,作用于当前整个函数体

2.Enclosed(嵌套)

  • 用于函数中嵌套函数内,作用于闭包函数

3.Global(全局)

  • 用于模块文件顶层声明的变量,用于当前模块

4.Built-in(内置)

  • 随着python启动而加载

2)LEGB规则

按照L - E - G - B的顺序查找变量

3)变量的修改

  • global修改全局变量
    • 将第一层函数内的变量修改到函数外层
  • nonlocal修改外层函数变量
    • 将第二层函数内的变量修改到第一层函数内

标签:函数,print,函数参数,参数,名称,类型,空间
From: https://www.cnblogs.com/Mist-/p/18136721

相关文章

  • git默认忽略文件名称大小写
    0.现象当将文件名称test修改为Test时,git提交记录检测不到变化1.原因Git默认设置忽略文件名大小写是因为不同操作系统对文件名大小写的处理方式不同,为了避免在不同操作系统之间出现文件名大小写不一致的问题,Git默认忽略文件名大小写。2.修改默认不忽略gitconfigcore.ig......
  • 参数,名称空间,作用域
    1函数的调用方式【1】直接调用函数名()-->调用函数defstudent(name,age):print(f"mynameis{name},myageis{age}")#函数名()-->调用函数student(name="silence",age=16)#mynameissilence,myageis16【2】用表达式调用函数用一个新变量存储函数的内......
  • ubuntu根目录lvm没用满分区空间
    ubuntu23.10安装虚拟机之后,磁盘分区没有用完,根目录只占了10G。#lvm逻辑卷使用分区100%空间lvextend-l+100%FREE/dev/mapper/ubuntu--vg-ubuntu--lv#df-h重新计算结果resize2fs/dev/mapper/ubuntu--vg-ubuntu--lv......
  • 内联和嵌套命名空间
    在开发大型的项目时,往往会有很多人参与协同开发,划分成各个小组负责不同的模块,模块之间相对独立。代码中会定义很多的类名、函数名、模板名,甚至一些全局变量,如果不对这些名称加以规范,很容易造成名字的冲突,因为默认情况下这些名字都是全局名字,这种情况也称之为命名空间污染。为了避......
  • fatfs文件系统读取剩余空间实例解析
    一前记 文件系统读取剩余内存空间并显示是一个常用的功能。这个函数是:FRESULTf_getfree(constTCHAR*path,DWORD*nclst,FATFS**fatfs);/*Getnumberoffreeclustersonthedrive*/第一个入参是文件路径,第二个参数剩余空间的指针,第三个参数是文件名。二实例......
  • 表空间单点恢复(TSPITR)
    1、前提条件必须存在删除表空间时间节点以前的全库备份。2、特点数据库不必关机。先克隆一个数据库实例,在克隆数据库上进行表空间单点恢复,再将恢复的表空间传送回源数据库(XTTS)。3、步骤3.1、将要恢复的时间节点转换成SCNselecttimestamp_to_scn(to_date('2024-04-12:10:4......
  • 挂载命名空间机制
    原文:https://blog.mufanc.xyz/posts/4104300991/何为「挂载」?  手册中对于挂载的描述是这样的:AllfilesaccessibleinaUnixsystemarearrangedinonebigtree,thefilehierarchy,rootedat/.Thesefilescanbespreadoutoverseveraldevices.Themountcom......
  • python基础-函数(函数参数、返回值、执行、传参、作用域、函数名)
    前言!!!注意:本系列所写的文章全部是学习笔记,来自于观看视频的笔记记录,防止丢失。观看的视频笔记来自于:哔哩哔哩武沛齐老师的视频:2022Python的web开发(完整版)入门全套教程,零基础入门到项目实战1.初识函数函数就是一大堆代码的集合,这一堆的代码再起个名字。#定义函数def函数名......
  • Robocopy是Windows操作系统中的一个命令行实用工具,用于在文件和目录之间进行复制。它
    robocopy/?-------------------------------------------------------------------------------  ROBOCOPY  ::  Windows的可靠文件复制------------------------------------------------------------------------------- 开始时间:2024年4月11日16:33:......
  • 使用L7·蚂蚁地理空间数据可视化实现灯杆查看
     1<template>2<divv-if="showMapDialog">3<el-dialogtitle="查看灯杆分布":visible="visible"@close="closeDia">4<divid="map"></div>5</el-dialo......