python基础之了解函数多一点

1、命名空间

命名空间就是存放变量名和变量值关系记录的一块内存空间,python中一共分三种命名空间,分别是内置命名空间、全局命名空间和局部命名空间。三种命名空间的加载顺序如下,

python解释器运行时内置命名空间被加载到内存,然后在python程序被运行时全局命名空间被加载到内存,全局命名空间中的变量从上到下依次被加载,最后当程序中的函数被调用时局部命名空间被加载到内存。

三种命名空间内的取值顺序依次为局部命名空间---》全局命名空间----》内置命名空间,这个顺序无论是在调用变量还是调用函数时都是一样的。

2、作用域

作用域就是变量或函数在程序中可以被调用的范围,主要分全局作用域和局部作用域。其中全局作用域包括内置命名空间、全局命名空间,内置命名空间和全局命名空间中定义的变量或函数可以在程序的任何位置被调用,局部作用域包括局部命名空间,局部命名空间中定义的变量或函数只能在当前代码块中被调用,在代码块外是无法被调用的。这里要特别说一下内置的global和local方法在全局作用域和局部作用域中被调用的区别,主要是local方法的不同,global方法被调用的结果都是显示程序中所有的变量或函数名,而local方法在局部作用域中被调用显示的是局部的变量和函数名,在全局作用域中被调用显示的是全局的变量和函数名。还有一个global关键字,它的作用是让局部变量可以在全局中被调用。

3、函数嵌套和作用域链

函数嵌套就是在函数内部再定义函数,于此就产生了一个作用域链的概念即内部函数可以调用外层函数的变量。比如如下嵌套函数,它的结果是输出1。

def f1():

    a = 1
    def f2():
        print(a)
    f2()

f1()

4、函数名的本质函数名实际上是指向函数体的内存地址,它的作用和变量一样,可以被引用、作为函数的参数或返回值、作为容器类型的元素。函数名也是第一类对象即可以在程序运行时创建、可以当作函数的参数或返回值、可以赋值给一个变量。

5、闭包闭包指的是一种函数,一种被嵌套定义在另一个函数内部的函数并且调用了外层函数的变量。闭包函数的作用是让外层函数被调用的变量可以长时间存放于内存当中,直到内部函数执行完毕才会被清除。
时间: 2024-11-10 08:03:38

python基础之了解函数多一点的相关文章

python基础之内置函数与匿名函数

python基础之内置函数与匿名函数 内置函数68个如下图 重点的关注的内置函数len,sorted,enumerate,all,any,zip,filter,map,reversed,slice len(o):参数为O,返回数据类型的长度sorted():      sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list iterable:是可迭代类型; cmp:用于比较的函数,比较什么由key决定; ke

萌新向Python数据分析及数据挖掘 第一章 Python基础 第八节 函数

第一章 Python基础 第八节 函数 定义函数 函数 其实就可以理解为外挂,把一些常用的.重复率比较多你又不想重复写的东西写进函数,加上开关实现简化操作 举个简单的例子 1 def greet_user(username): 2 #定义一个叫做"迎接用户"的外挂,让他能直接打印一个问候语,括号里面是函数需要输入的东西,也就是个性化的东西 3 """先是简单的问候语""" 4 print("Hello! "

Python基础之内置函数(二)

先上一张图,python中内置函数: python官方解释在这:点我点我 继续聊内置函数: callable(object):检查对象是否可被调用,或是否可执行,结果为bool值 def f1(): pass f2 = 123 print(callable(f1)) print(callable(f2)) out: True False char(): ord(): 这两个一起讲,都是对应ASCii表的,char(obect)将十进制数字转化为ascii中对应的字母,ord(object)将字母

python 基础篇 11 函数进阶----装饰器

11. 前??能-装饰器初识本节主要内容:1. 函数名的运?, 第?类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ?. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 叫闭包 可以使用_clesure_检测函数是否是闭包  返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不?定了, 因为在外部,

Python基础之内置函数和递归

本文和大家分享的主要是python中内置函数和递归相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.内置函数 下面简单介绍几个: 1.abs() 求绝对值 2.all() 如果 iterable 的所有元素都为真(或者如果可迭代为空),则返回  True 3.any() 如果 iterable 的任何元素为真,则返回  True .如果iterable为空,则返回  False 4.callable() 如果  object 参数出现可调,则返回  True ,否则返回  Fal

Python 基础语法六 ——函数

一个程序可以按不同的功能实现拆分成不同的模块,而函数就是能实现某一部分功能的代码块. 1.函数的概述 定义:在Python中,定义个函数要使用 def 语句,一次写出函数名.括号.括号中的参数和冒号(:),然后在缩进块中编写函数体,函数的返回值用return 语句返回. def area_of_square(x): s = x*x return s 1 def area_of_square(x): 2 s = x*x 3 return s 2.全局变量 定义:在函数外面定义的变量称为全局变量.

Python基础笔记:函数:调用函数、定义函数、函数的参数、递归函数

一.定义一个求二元一次方程的根的函数 #Sublime Text import math def ee(a,b,c): delta=b*b-4*a*c if delta<0: return 'null' else: m=math.sqrt(delta) nx=(-b+m)/2/a ny=(-b-m)/2/a return nx,ny #python解释器 >>> from hello import ee #声明调用py文件中所定义的函数ee >>> ee(1,0,

Python基础——内置函数

课前梗概 学到这里,大家是不是在想一个问题,我们之前一直用到的简单语法中会有,iut(),print(),len(),input()…………等等,你们是否想过,我们在使用之前没有做什么定义操作而是自然而然用到了,非常自然,这到底是什么情况?它们到底是什么东西呢? 其实,这些函数都是一个名为 builtins模块已经封装定义好的函数,而且这个模块在安装python环境的时候就默认导入了,所以我们可以直接使用. 这些函数,在python我们也称之为“内置函数”. 内置函数 在python的3.6.2

深入理解python(四)python基础知识之函数

函数部分 函数部分大概想分成两个部分来讲,第一部分是关于对函数参数的介绍,第二部分是局部变量全局变量和内置变量也就是变量作用域的LGB原则 函数的参数 1.关于形参和实参的问题 第一点要注意的是python中形参和实参的问题. 以不可变对象为参数,不会修改不可变对象的值(形参和实参的原因) 但对于可变对象(例如列表字典等),会在原地修改对象的值 例: >>> def immutableob(a):#在函数中修改不可变对象的值 ... a+=1 >>> b=1 >&