当前位置: 首页 > news >正文

Python基础学习(7)函数作用域与名称空间

文章目录

  • 一.认识函数对象
    • 1.函数被引用
    • 2.函数作为元素
    • 3.函数可以作为参数和返回值
  • 二,名称空间
    • 1.内建名称空间(存放内置函数)
    • 2.全局名称空间(Python定义在外层的名字)
    • 3.局部名称空间(存在函数内定义的名字)
  • 三,作用域
    • 1.global 提权
    • 2.nonlocal 降权
  • 四,匿名函数

Python基础学习(1)基本知识
Python基础学习(2)序列类型方法与数据类型转换
Python基础学习(3)进阶字符串(格式化输出)
Python基础学习(4)散列类型(无序序列)
Python基础学习(5)流程控制
Python基础学习(6)函数基础与函数参数
Python基础学习(7)函数作用域与名称空间
Python基础学习(8)函数进阶-闭包/装饰器
Python基础学习(9)迭代器/生成器

一.认识函数对象

1.函数被引用

数据名=函数名 # 把函数复制一份 给新的数据名
数据名=函数名() # 把函数返回值赋值给新的数据名

def Try_1():print('hhh')
a=Try_1
a()

2.函数作为元素

函数可以作为元素放在列表,元组,字典,集合中使用

def Try_1():print('hhh')
a=Try_1
list_1=[1,5,6,Try_1]
print(list_1[3])
list_1[3]()

<function Try_1 at 0x000001B2C936F3A0>
hhh

3.函数可以作为参数和返回值

def Try_1():print('hhh')
def Try_2(a):a()return a
Try_2(Try_1)()

二,名称空间

名称空间 – 存储变量名 函数名 模块名

内存数据 – 变量值 函数代码 模块代码

一共有三层结构

1.内建名称空间(存放内置函数)

生命周期: 随着Python程序启动而生成,在程序关闭时收回 清除所有数据
加载顺序: 最先被加载出来的
存放对象: 内置函数 print input type len max min 

2.全局名称空间(Python定义在外层的名字)

生命周期: 随着Python文件执行之前产生 运行完后销毁
加载顺序: 第二个被加载出来的
存放对象: 在Python外层写的代码 定义的变量名 函数名

3.局部名称空间(存在函数内定义的名字)

生命周期: 随着函数调用而产生 在结束调用时销毁
加载顺序: 在调用时才会被加载
存放对象: 在函数里定义的变量名 函数名 形参参数

三,作用域

作用域: 一个数据能够使用的范围

作用域分为: 全局作用域 局部作用域

全局作用域: 内建名称空间 全局名称空间
内置函数 外层定义的变量 函数名
公共WiFi 所有人都可以使用

局部作用域: 局部名称空间
函数内部的变量和函数名
独有wifi 只能我自己用

1.global 提权

提权: 让一个数据从局部变为全局
语法格式:
def 函数名():
global 变量名
操作变量
函数名()
print(变量)

def Try_1():global aa=10
Try_1()# 局部名称空间的创建 需要调用函数才可以生成对应的名称空间
print(a)# 把局部数据变为全局了

2.nonlocal 降权

降权: 将局部变量再深度局部化
nonlocal 关键字用于在嵌套函数中修改外围函数的局部变量

# 降权
def fun1():a = 1 # 这个a 在函数里算是公共的(全局)def fun2():nonlocal a # 把变量a霸道的抢过来 私有化a = 0fun2()print(a)fun1()

不同作用域的相同名也是不一样的

四,匿名函数

平时使用的函数==有名函数

匿名函数顾名思义=无名函数

匿名函数作用:不想取名 并且函数只用一次的时候使用

语法格式:
lambda 变量:操作

print((lambda a:print(a))('你好'))#操作返回
print((lambda a,b:a+b)(1,2))
talk=(lambda a:print(a))//给匿名函数赋名
talk('woshi')

相关文章:

Python基础学习(7)函数作用域与名称空间

文章目录 一.认识函数对象1.函数被引用2.函数作为元素3.函数可以作为参数和返回值 二,名称空间1.内建名称空间(存放内置函数)2.全局名称空间(Python定义在外层的名字)3.局部名称空间(存在函数内定义的名字) 三,作用域1.global 提权2.nonlocal 降权 四,匿名函数 Python基础学习(…...

使用helm部署clickhouse

&#xff08;作者&#xff1a;陈玓玏&#xff09; 前置条件 已安装 Kubernetes 集群&#xff1b; 已安装 Helm 包管理工具。 部署 1 添加 RadonDB ClickHouse 的 Helm 仓库 helm repo add ck https://radondb.github.io/radondb-clickhouse-kubernetes/ helm repo upd…...

2024.02.09 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、校招 | 中国电信江苏分公司2024年春季校园招聘 校招 | 中国电信江苏分公司2024年春季校园招聘 2、校招 | 国机集团2024届总部管培生春季招聘全面启动&#xff01; 校招 | 国机集团202…...

【其他】清风眼中的《妙手仁心》

我是清风&#xff0c;一个以医生为正职&#xff0c;平时喜欢写点文字的男人。人家喜欢把我称为作家&#xff0c;可是我觉得我还配不上这个称呼。因为我所记录的只是一些身边的人和事&#xff0c;所抒发的也只是一些个人的情感&#xff0c;这与“作家”二字相去甚远。有人也许会…...

洛谷 P1036 [NOIP2002 普及组] 选数

题目描述 已知 nn 个整数 x_1,x_2,\cdots,x_nx1​,x2​,⋯,xn​&#xff0c;以及 11 个整数 kk&#xff08;k<nk<n&#xff09;。从 nn 个整数中任选 kk 个整数相加&#xff0c;可分别得到一系列的和。例如当 n4n4&#xff0c;k3k3&#xff0c;44 个整数分别为 3,7,12,1…...

SSM整合项目(删除家居 + 分页查询)

1.删除家居 1.需求分析 2.编写Service层 1.FurnService.java 添加方法 //删除家居public void del(Integer id);2.FurnServiceImpl.java 实现方法 Overridepublic void del(Integer id) {furnMapper.deleteByPrimaryKey(id);}3.单元测试 Testpublic void del() {furnService.…...

记录一下go的包管理

如何降低版本 假设go版本go 1.16运行项目&#xff0c; 查看运行报错&#xff0c;根据报错信息&#xff0c;一条一条解决 go run main.go错误: /home/server1/go/pkg/mod/google.golang.org/grpcv1.58.2/internal/buffer/unbounded.go:92:34: undefined: any类似这样的报错提醒…...

【APB协议 UVM_Sequencer Driver Monitor_2024.03.04】

apb协议 写时序 地址、写信号、PSEL、写数据信号同时发生变化&#xff0c;即传输的第一个时钟被称为SETUP周期。在下个时钟上升沿,PENABLE信号拉高&#xff0c;表示ENABLE周期&#xff0c;在该周期内&#xff0c;数据、地址以及控制信号都必须保持有效。整个写传输在这个周期…...

C++ Qt开发:QFileSystemWatcher文件监视组件

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QFileSystemWatcher组件实现对文件或…...

window Zookeeper 启动;

文章目录 前言一、Zookeeper 介绍&#xff1a;二、window 使用&#xff1a;2.1 下载&#xff1a;2.2 启动2.3 连接&#xff1a; 总结 前言 本文对window Zookeeper zk 启动 进行介绍&#xff1b; 一、Zookeeper 介绍&#xff1a; ZooKeeper 是一个开源的分布式协调服务&#…...

数据分析-Pandas如何画图验证数据随机性

数据分析-Pandas如何画图验证数据随机性 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表…...

地球系统模式(CESM)

目前通用地球系统模式&#xff08;Community Earth System Model&#xff0c;CESM&#xff09;在研究地球的过去、现在和未来的气候状况中具有越来越普遍的应用。CESM由美国NCAR于2010年07月推出以来&#xff0c;一直受到气候学界的密切关注。近年升级的CESM2.0在大气、陆地、海…...

数据通信练习题

1.0osi七层模型 应用层 data 表示层 会话层 传输层 数据段 防火墙&#xff0c;端口&#xff08;TCP UDP&#xff09; 网络层 数据包 路由器 数据链路层 数据帧 交换机 物理层 比特流 网卡 2.IP地址分类 私有地址 A类 0--127 10.0.0.0…...

本地部署推理TextDiffuser-2:释放语言模型用于文本渲染的力量

系列文章目录 文章目录 系列文章目录一、模型下载和环境配置二、模型训练&#xff08;一&#xff09;训练布局规划器&#xff08;二&#xff09;训练扩散模型 三、模型推理&#xff08;一&#xff09;准备训练好的模型checkpoint&#xff08;二&#xff09;全参数推理&#xff…...

设计模式: 模板方法模式

文章目录 一、什么是模板方法模式二、模板方法模式结构三、优点 一、什么是模板方法模式 模板方法模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将一些步骤延迟到子类中实现。这样可以使得子类…...

C++ 打印输出十六进制数 指定占位符前面填充0

C 打印十六进制数据&#xff0c;指定数据长度&#xff0c;前面不够时&#xff0c;补充0. 代码如下&#xff1a; #include <iostream> #include <iomanip> #include <cmath>using namespace std;int main() {unsigned int id 0xc01;unsigned int testCaseId…...

基于 Win Server 2008 复现 IPC$ 漏洞

写在前面 本篇博客演示了使用 winXP&#xff08;配合部分 win10 的命令&#xff09;对 win server 2008 的 IPC$ 漏洞进行内网渗透&#xff0c;原本的实验是要求使用 win server 2003&#xff0c;使用 win server 2003 可以规避掉很多下面存在的问题&#xff0c;建议大家使用 …...

HTML笔记2

11&#xff0c;路径 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Document</title> <…...

使用Docker实现Jenkins+Python + Pytest +Allure 接口自动化

一、Jenkins搭建 参考《Docker 安装 Jenkins》 进入 jenkins 容器 CLI 界面 docker exec -itu root jenkins /bin/bash二、准备条件 1、替换镜像内源 为了安装wget&#xff0c;默认用yum会安装不上wget命令&#xff0c;参考文章《docker容器内如何更换yum源【只想换成国内…...

论企业安全漏洞扫描的重要性

前言 随着信息技术的迅猛发展和互联网的广泛普及&#xff0c;网络安全问题日益凸显。在这个数字化的世界里&#xff0c;无论是企业还是个人&#xff0c;都面临着前所未有的安全威胁。安全漏洞&#xff0c;作为这些威胁的源头&#xff0c;常常被忽视或无法及时发现。 而安全漏洞…...

Phi-4-mini-reasoning 3.8B在VSCode中的智能编程应用:Codex风格体验

Phi-4-mini-reasoning 3.8B在VSCode中的智能编程应用&#xff1a;Codex风格体验 1. 轻量级AI编程助手的惊艳表现 在编程领域&#xff0c;AI辅助工具正变得越来越重要。Phi-4-mini-reasoning 3.8B作为一款轻量级模型&#xff0c;在VSCode中展现出了令人惊喜的智能编程能力。虽…...

别再只用Seurat分群了!用hdWGCNA给你的单细胞数据挖掘基因共表达模块(附INH神经元实战代码)

突破单细胞分群瓶颈&#xff1a;用hdWGCNA挖掘INH神经元功能模块的完整指南 当你完成单细胞转录组数据的Seurat标准分析流程&#xff0c;得到清晰的细胞聚类分群结果时&#xff0c;兴奋之余是否也感到一丝迷茫&#xff1f;知道细胞类型&#xff08;cell_type&#xff09;只是起…...

SimpleMorse:轻量级Arduino摩尔斯码按钮解码库

1. 项目概述SimpleMorse 是一款专为嵌入式 Morse 码交互场景设计的轻量级 Arduino 库&#xff0c;其核心目标是将物理按钮输入&#xff08;点、划、空格、退格&#xff09;实时转换为可读文本与 ASCII 字符流。该库不依赖任何外部组件或动态内存分配&#xff0c;完全基于静态数…...

插件开发——upgrade 插件版本升级

upgrade 插件版本升级插件在更新迭代版本时&#xff0c;可能需要进行业务升级每个版本数据库变更文件存放位置文件位置&#xff1a;niucloud-addon/插件名称/src/main/resources/插件名称/upgrade/一键升级在 admin 端进行在线升级&#xff0c;升级的时候会执行 sql 文件...

Calico IPIP 使用指南芈

本课概览 Microsoft Agent Framework (MAF) 提供了一套强大的 Workflow&#xff08;工作流&#xff09; 框架&#xff0c;用于编排和协调多个智能体&#xff08;Agent&#xff09;或处理组件的执行流程。 本课将以通俗易懂的方式&#xff0c;帮助你理解 MAF Workflow 的核心概念…...

数控自学常用的几个网站,建议收藏

CNC自学网 网址&#xff1a;https://www.cnczxw.com 老机械工程师的点评&#xff1a;这网站是块硬料&#xff0c;专搞数控的&#xff0c;从基础操作到高级编程都给你掰扯明白。教程实在&#xff0c;没那些花里胡哨的玩意儿&#xff0c;适合踏踏实实学手艺的。 我要自学网 网…...

Windows/Mac双平台实测:Caption滚动字幕软件如何5分钟打造高逼格桌面特效

Windows/Mac双平台实测&#xff1a;Caption滚动字幕软件如何5分钟打造高逼格桌面特效 在数字内容创作领域&#xff0c;视觉冲击力往往决定着作品的传播效果。无论是自媒体博主的视频包装&#xff0c;还是创意工作者的项目展示&#xff0c;动态文字元素总能成为吸引眼球的利器。…...

AI入门必看|零基础搞懂人工智能核心定义,避开入门误区

摘要&#xff1a;本文专为AI零基础小白打造&#xff0c;用大白话拆解人工智能的核心定义、发展脉络&#xff0c;厘清新手最易混淆的概念&#xff0c;帮你快速建立对AI的正确认知&#xff0c;迈出入门第一步&#xff0c;拒绝被专业术语劝退。关键词&#xff1a;人工智能入门&…...

为什么你的Copilot总写错接口参数?根源在缺失“契约优先”的文档生成范式——3步迁移至OpenAPI-First AI协作模式

第一章&#xff1a;AI原生软件研发文档自动化生成方案 2026奇点智能技术大会(https://ml-summit.org) 在AI原生软件开发范式下&#xff0c;代码与文档的边界持续消融。高质量、实时同步的技术文档不再作为后期交付物&#xff0c;而应成为代码演进过程中的自然副产品。本方案聚…...

TI IWR1843+DCA1000数据采集实战:手把手教你用Matlab调用LUA脚本配置mmWave Studio参数

TI IWR1843DCA1000数据采集实战&#xff1a;从零掌握Matlab与LUA协同配置技巧 毫米波雷达开发中&#xff0c;参数配置的精准度直接决定了数据采集的质量。传统手动配置不仅效率低下&#xff0c;还容易因操作失误导致实验失败。本文将带你用Matlab与LUA脚本的黄金组合&#xff0…...