python学习之函数阶段

python 3 函数

函数是组织好的,可以被重复利用的,用来实现单一、或者相关联功能的一段代码。

函数能提高应用的模块性和代码的重复利用率,避免相同功能重复书写,节省空间。


定义一个函数

  • 函数代码块以def关键字开头,后接函数名和():
  • 任何传入参数必须放在()中,()中可以定义参数
  • return表示函数结束,选择性地返回一个值(不选择返回值则默认为None)给调用方。

函数调用

需要调用自己定义的函数时,用函数名+()来调用()内可以传递参数


参数传递

  • 位置传参
  • 不定长参数
  • 默认参数
  • 关键字传参

命名空间和作用域

A、命名空间分为三种:

1.全局命名空间

2.局部命名空间

3.内置命名空间

三种命名空间的加载值顺序

1.全局命名空间——在运行程序时运行,不在函数内部,从上到下按顺序加载

2.局部命名空间——程序运行中,调用函数才加载

3.内置命名空间——运行程序之前已加载

三种命名空间的取值顺序

在局部调用:局部->全局->内置

在全局调用:全局->局部

B、作用域

作用域就是作用范围,按照生效范围可以分为全局作用域和局部作用域

全局作用域:包含内置名称空间、全局名称空间,在整个文件的任意位置都能被调用,全局有效

局部作用域:局部名称空间,只能在局部范围内生效

globals和locals方法

globals 在函数里后边跟变量可以更改对应全局的变量值


函数的嵌套和作用域链

A、函数的嵌套调用

B、函数的嵌套定义

C、函数的作用域链

D、nonlcoal关键字

# 1.外部必须有这个变量
# 2.在内部函数声明nonlocal变量之前不能再出现同名变量
# 3.内部修改这个变量如果想在外部有这个变量的第一层函数中生效


函数名的本质

函数名本质上就是函数的内存地址

1、可以被引用

2、可以被当作容器类型的元素

3、可以当作函数的参数和返回值(普通变量)


闭包

闭包函数:

内部函数包含对外部作用域而非全剧作用域名字的引用,该内部函数称为闭包函数(两个或两个以上函数的嵌套,里边的函数有外边的函数的变量名)

例如:

def func():
    name = ‘eva‘
    def inner():
        print(name)

#函数内部定义的函数称为内部函数

由于有了作用域的关系,就不能拿到函数内部的变量和函数了。如果就是想拿怎么办呢?返回!

知道函数内的变量我们要想在函数外部用,可以直接返回这个变量,那么如想在函数外部调用函数内部的函数呢?

是不是直接就把这个函数的名字返回就好了?

这才是闭包函数最常用的用法

闭包函数获取网络应用实例:

from urllib.request import urlopen

def index():
    url = "http://www.xiaohua100.cn/index.html"
    def get():
        return urlopen(url).read()
    return get

xiaohua = index()
content = xiaohua()
print(content)
时间: 2024-10-15 23:09:21

python学习之函数阶段的相关文章

python 学习笔记 函数和类

与java类似 python的函数也是出于可以复用才使用的 如果一段代码没有复用的价值就可以不用函数 一般的函数可以定义成这样: def func(a,b=123,*arg,**args): for x in arg:#arg是一个list print x for x,y in args.items():#args是一个dict print x,y print 'a:',a print 'b:',b func(1,1,2,3,4,c=1,d=2) 结果: 2 3 4 c 1 d 2 a: 1 b

Python学习之函数篇

python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提前确定参数个数,可以采用可变参数,因此,python不必支持函数的重载,更简单,更方便的实现重载 函数示例: 求最大公约数.最小公倍数函数封装 原文地址:https://www.cnblogs.com/baobao2201128470/p/10884153.html

python学习笔记 - 函数,集合,包,模块

一.函数 a=1, b=2, 交换值 定义中间量c,C=None, a,b=b,a a,b,c=1,2,3 sys.argv 实现指定的某些功能,使用的时候可以直接调用,简化代码,提高代码复用性 def fun():#定义一个函数,后面是函数名                print("Hello World")#函数体 例如: 1.def sayHello(): print("Hello World") sayHello()  --调用 2.def sayNam

python学习之函数

1.函数名可以被赋值 比如: def aaa(): pass b = aaa//将函数名字赋值给b b()//跟aaa()效果一样 2.return 2.1.如果函数不写return的话,会默认返回None 2.2.return后,函数下面的语句不会被执行,中断函数操作 2.3.return个什么东西都行,哪怕是个列表..... 3.pycharm使用断点调试的话,需要用debug模式(向右小箭头的小虫子) 4.参数: 默认参数必须写在后边 def aaa(a1, a2 = 1): pass//

Python学习之函数详解

函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,这样在以后的python开发中十分重要,可以使你的程序更加简洁,有逻辑,可读性强. 一.函数的调用 Python内置了很多有用的函数,我们可以直接调用.要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数.可以在交互式环境中用help()查看关于调用函数的相关信息 >>> abs(100)100 >>> help(abs) Help on built-i

python学习之函数进阶三

一.模块介绍 os模块常用方法 os.getcwd()    #获取当前工作目录 os.listdir("F:\\")    #获取指定目录下的所有文件和目录 os.remove('b.json')    #删除指定文件 os.stat('a.json')    #获取文件属性 os.chmod()        #修改文件属性 os.mkdir('hyh')    #创建目录 os.rmdir('hyh')    #删除目录 os.system('dir')    #运行shell命

python学习之函数学习进阶

1.名称空间 python有三种名称空间 内置名称空间: 随着python解释器的启动而产生 print(sum) print(max) 全局名称空间: 文件的执行会产生全局名称空间,指的是文件级别的定义名字都会放入该空间 x = 11 if x == 11:     print(x) 局部名称空间: 调用函数时会产生局部名称空间,只在函数调用时临时绑定,调用结束时解绑 x = 1000 def foo():     x = 1     print(x) foo() print(x) 作用域:

Python学习之--函数

Function,函数,主要是为了:1提高代码的复用程度,2将程序模块化. 定义函数 在Python中,使用def 用来定义函数,一般函数的定义如下: def name(arg1,arg2,....): statements return value 其中,return 用来返回函数执行的结果 一个简单的sample如下: >>> def times(x,y): ... return x*y ... >>> times(5,2) 10 >>> 函数执行

Python学习之函数进阶

函数的命名空间 著名的python之禅 Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't