python基础18_作用域与名称空间

先讲讲函数对象的概念

"""
什么是函数对象,就是把函数看成是一个对象,或者是一个变量
"""
print(0)  #这是不是调用的print这个函数
a = print  #是不是把函数赋值给a,也就是a就等于这个函数
a(1)
b = print(1) # 就是会调用print(1)这个函数,并且把返回值赋值给函数本身
print(b)
aa = [type, 1,2,3]
print(aa[0]("hello"))  #也可以把函数放在容器里面使用

def func(a):
    """
    也可以把函数当做参数去传
    :param a:
    :return:
    """
    b = a("请输入你的名字")
    print(b)
func(input)

def func2():
    """
    函数也可以是返回值
    :return:
    """
    return input
func2()("请输入你的年龄")

名称空间

#名称空间
# 堆栈
# 堆就是名称空间 就是存储变量名的地方
# 三种名称空间
# 内建名称空间:存储内置变量名 内置函数名
#全局名称空间:存储的自定义的在外部的变量名,函数名
#局部名称空间:在函数内部定义的形参,函数名,变量名
# 一个程序里的数据都是会存储在对应的位置
# 名称空间 --> 用来存储名字的地方!!!

作用域

# 作用域就是数据的使用范围
# 也就是内建名称空间和全局名称空间存储的数据,全局都可以使用
# 局部作用域: 只有局部位置才能使用(函数内)
name = "李白"
print(name)
def fun():
    print(name)
fun()
def fun():
    name = "杜甫"
    print(name)
fun()
print(name)

 global 和 nonlocal

name = 12
def func():
    global name
    name = 13
func()
print(name)
def func():
    global name #把变量定义成全局变量,修改的是全局变量
    name = 14
    age =15
    sex = "男"
    def func_0():
        global name
        global age
        nonlocal sex#把变量定义成外层的局部变量,修改的是外层的局部变量
        age = 16
        name = 15
        sex = "女"
    func_0()
    print(age)
    print(sex)
func()

匿名函数 | lambad函数

def func(a,b):
    print(a+b)
func(12,22)
dunc_0 = lambda a,b: print(a+b)
dunc_0(22,44)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/274804.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

windows 多网卡情况dns解析超时问题的排查

最近遇到一个问题 多网卡,多网络环境下,dns解析总是超时。 排查之后发现是dns配置的问题,一个有线网络配置的内网dns,一个无线网络配置的公网dns 访问公网时莫名的时不时出现超时现象 初步排查是dns解析的耗时太长,…

2024.3.9|第十五届蓝桥杯模拟赛(第三期)

2024.3.9|十五届蓝桥杯模拟赛(第三期) 第一题 第二题 第三题 第四题 第五题 第六题 第七题 第八题 第九题 第十题 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C学习笔记,常言道,不积跬步无以至千里&…

mysql之基本概念与安装

一 数据库的基本概念 1.1 数据 记录个体的信息 1.2 表 存放信息的集合,行于与列 1.3 数据库 数据库就是表的集合。它是以一定的组织方式存储的相互有关的数据集合 1.4 数据库管理系统 数据库管理系统(DatabaseManagementSystem,DBMS&…

Springboot+vue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频: Springbootvue的仓库管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层…

用C语言打造自己的Unix风格ls命令

在Unix或类Unix操作系统中,ls是一个非常基础且实用的命令,它用于列出当前目录或指定目录下的文件和子目录。下面,我们将通过C语言编写一个简化的ls命令,展示如何利用dirent.h头文件提供的函数接口实现这一功能。 #include "…

五、C#归并排序算法

简介 归并排序是一种常见的排序算法,它采用分治法的思想,在排序过程中不断将待排序序列分割成更小的子序列,直到每个子序列中只剩下一个元素,然后将这些子序列两两合并排序,最终得到一个有序的序列。 归并排序实现原…

MaixSense-A010 接入 ROS

MaixSense 是什么 MaixSense 系列产品搭载 TOF 深度摄像头,目前有 MaixSense-A010 和 MaixSense-A075V 两款产品。 MS-A010 是一款由 BL702 炬佑 100x100 TOF 模组所组成的极致性价比的 TOF 3D 传感器模组,最大支持 100x100 的分辨率和 8 位精度&…

简介:iframe 沙箱+WebComponent 容器

前言 HTML 内联框架元素 (<iframe>) 表示嵌套的browsing context。它能够将另一个 HTML 页面嵌入到当前页面中。 每个嵌入的浏览上下文&#xff08;embedded browsing context&#xff09;都有自己的会话历史记录 (session history)和DOM 树。包含嵌入内容的浏览上下文称…

网络安全的几个关键领域

网络安全是一个复杂且多维度的领域&#xff0c;涵盖了多个关键领域&#xff0c;涉及到信息保护、网络防护、应用安全、用户教育以及物理安全等多个方面。这些关键领域相互交织&#xff0c;共同构成了网络安全这一宏大且细致入微的领域。 今天德迅云安全就分享下网络安全的几个…

深入理解栈和队列(一):栈

个人主页&#xff1a;17_Kevin-CSDN博客 专栏&#xff1a;《数据结构》 一、栈的概念 栈&#xff08;Stack&#xff09;是一种特殊的线性表&#xff0c;它遵循后进先出&#xff08;Last-In-First-Out&#xff0c;LIFO&#xff09;的原则。栈可以被看作是一个只能在一端进行操作…

多线程:线程池

认识线程池 什么是线程池? 线程池就是一个可以复用线程的技术。 不使用线程池的问题&#xff1a; 用户每发起一个请求&#xff0c;后台就需要创建一个新线程来处理&#xff0c;下次新任务来了肯定又要创建新线程处理的&#xff0c;而创建新线程的开销是很大的&#xff0c;…

选数异或 (AcWing 4645)

题目链接: https://www.acwing.com/problem/content/description/4648/ 题目描述: 评价: 这道题感觉还是蛮有意思的&#xff0c;难度适中&#xff0c;而且有一定的思维含量&#xff0c;值得反复品味。 思路: 首先我们定义一个数组g[N], 其中的每个元素g[i] 表示在所有 i<j…

选择排序算法(Selection Sort)原理及实现

选择排序算法&#xff0c;运行效率不高&#xff0c;但是非常容易理解&#xff0c;算法复杂度为 。 原理&#xff1a; 假设要排序的数组的长度为n&#xff0c;将数组先分为两个部分&#xff0c;一个是有序区域部分&#xff0c;另一个为无序区域部分。初始时有序部分中没有元素…

基于Spring Boot+Vue的智慧图书管理系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 一、项目简介 如今社会上各行各业&…

漫谈微服务网关

一、什么是服务网关 服务网关 路由转发 过滤器 1、路由转发&#xff1a;接收一切外界请求&#xff0c;转发到后端的微服务上去&#xff1b; 2、过滤器&#xff1a;在服务网关中可以完成一系列的横切功能&#xff0c;例如权限校验、限流以及监控等&#xff0c;这些都可以通过…

性能优化(CPU优化技术)-NEON指令详解

原文来自ARM SIMD 指令集&#xff1a;NEON 简介 &#x1f3ac;个人简介&#xff1a;一个全栈工程师的升级之路&#xff01; &#x1f4cb;个人专栏&#xff1a;高性能&#xff08;HPC&#xff09;开发基础教程 &#x1f380;CSDN主页 发狂的小花 &#x1f304;人生秘诀&#xf…

服务器版本命令查看

1、# uname &#xff0d;a &#xff08;Linux查看版本当前操作系统内核信息&#xff09; 2、# cat /proc/version &#xff08;Linux查看当前操作系统版本信息&#xff09; 3、# cat /etc/issue 或 cat /etc/redhat-release &#xff08;Linux查看版本当前操作系统发行版信息&…

前端项目,个人笔记(五)【图片懒加载 + 路由配置 + 面包屑 + 路由行为修改】

目录 1、图片懒加载 步骤一&#xff1a;自定义全局指令 步骤二&#xff1a;代码中使用 ​编辑步骤三&#xff1a;效果查看 步骤四&#xff1a;代码优化 2、封装组件案例-传对象 3、路由配置——tab标签 4、根据tab标签添加面包屑 4.1、实现 4.2、bug&#xff1a;需要…

k8s详细教程

Kubernetes详细教程 1. Kubernetes介绍 1.1 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点…

QT 驾校系统界面布局编写

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(ui->label_img->width(),ui->label_img->height());//图片自适应窗口大小ui->label_img->setScaledContents(true);//图片置…
最新文章