一、什么是命名关键字参数?

格式: 在*后面参数都是命名关键字参数。

特点:1、约束函数的调用者必须按照Kye=value的形式传值。

   2,、约束函数的调用者必须用我们指定的Key名。

def auth(*args,name,pwd):
print(name,pwd) auth(pwd='',name='egon') def register(name,age):
print(type(name),type(age)) register(123,[1,2,3])

###以上输出:

egon 213
<class 'int'> <class 'list'>

二、函数的嵌套

1、函数的嵌套调用:在函数内又调用了其他函数

def max2(x,y):
if x > y:
return x
else:
return y
def max3(x,y,z):
res1=max(x,y)
res2=max(res1,z)
return res2
print(max3(88,99,100))

###以上输出:

100

2、函数的嵌套定义:在函数内又定义其他函数。

def func1():
print('from func1')
def func2(): #func2=内存地址
print('from func2') print(func2) #<function func1.<locals>.func2 at 0x0000024907A098C8>
func2()
func2()
func2() func1()

###以上输出:

from func2
from func2
from func2

三、函数的名称空间

1、名称空间:存放名字与值绑定关系的地方

x=888888888
def func():
pass

2、名称空间分为三类

(1)内置名称空间:存放python解释器自带的名字,在解释器启动时就生效,解释器关闭则失效。

(2)全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者在文件执行期间被删除则失效。

x=1
def f1():
def f2():
print(x)
f2()
f1() if 10 > 3:
y=33333 while True:
xxxxx=123123123

###以上输出:

1

(3)局部名称空间:存放函数自定义的名字(函数的参数以及函数内的名字都存放与局部名称空间),在函数调用时临时生效,函数结束则失效。

注意:

加载顺序:内置名称空间-------->>全局名称空间------->>>局部名称空间

查找名字:局部名称空间-------->>全局名称空间------->>>内置名称空间

def f1():
# len=1
def f2():
# len=2
print(len)
f2() f1()

###以上输出:

global

3、作用域

全局作用域:包涵的是内置名称空间与全局名称空间的名字。

特点:

(1)在任何位置都能够访问的到

(2)该范围内的名字会伴随程序整个生命周期

局部作用域:包含的是局部名称空间的名字

特点:

(1)只在函数内使用

(2)调用函数时生效,调用结束失效

四、函数对象

1、函数在python中是第一类对象

(1)可以被引用

x=1
y=x def bar():
print('from bar') f=bar
f()

###以上输出:

from bar

(2)可以当做参数传入

x=1
def func(a):
print(a) func(x)

###以上输出:

1

(3)可以当做函数的返回值

#代码(1)
x=1
def foo():
return x res=foo()
print(res)

###以上输出:

1

代码(2)
def bar():
print('from bar') def foo(func): #func=<function bar at 0x00000225AF631E18>
return func #return <function bar at 0x00000225AF631E18> # print(bar)
f=foo(bar) #f=<function bar at 0x00000225AF631E18>
# print(f)
f()

###以上输出:

from bar

(4)可以当做容器类型的元素

x=1
l=[x,] print(l) def get():
print('from get') def put():
print('from put') l=[get,put] # print(l)
l[0]()

###以上输出:

[1]
from get

注意:

1、 func可以被引用

  f=func

2、func可以当做参数传给x

3、func还可以当做返回值

4、可以当做容器中类型的元素

函数查询登录功能的引用:

def auth():
print('请登录:')
def reigster():
print('注册:')
def search():
print('查看:')
def transfer():
print('转账')
def pay():
print('支付') dic={
'':auth,
'':reigster,
'':search,
'':transfer,
'':pay
} def interactive():
while True:
print('''
1 认证
2 注册
3 查看
4 转账
5 支付
'''
)
choice = input('请输入编号:').strip()
if choice in dic:
dic[choice]()
else:
print('非法操作') interactive()

五、闭包函数

闭:指的是定义在函数内部的函数

  作用域关系,在函数定义阶段就规定死了,与调用位置无关

def outter():
x=2
def inner():
# x=1
print('from inner',x) return inner f=outter() #f=inner def foo():
x=1111111111111111111111111111
f() foo()

###以上输出:

from inner 2

1、闭包函数:

(1)定义在函数内部的函数

(2)并且该函数包含对外部函数作用域中名字的引用,该函数就称为闭包函数

了解:

为函数体传值的方式

方式一:将值以参数的形式的传入

  利用爬虫获取网站的源代码:

import requests:

def get(url):
response=requests.get(url)
if response.status_code == 200:
print(response.text) get('https://www.baidu.com')

方式二

import requests
import time def outter(url): #url='https://www.baidu.com' # url='https://www.baidu.com'
def get():
response=requests.get(url)
if response.status_code == 200:
print(response.text) return get baidu=outter('https://www.baidu.com')
python=outter('https://www.python.org') baidu()
print('=====================>')
time.sleep(3) baidu()

python 函数基础2的更多相关文章

  1. 《转》Python学习(17)-python函数基础部分

    http://www.cnblogs.com/BeginMan/p/3171977.html 一.什么是函数.方法.过程 推荐阅读:http://www.cnblogs.com/snandy/arch ...

  2. Python 函数基础、有序集合、文件操作(三)

    一.set 特点: set是一个无序且不重复的元素集合访问速度快:天生解决元素重复问题 方法: 初始化 >>> s1 = set()>>> print(type(s ...

  3. python函数基础学习

    函数的定义与调用: def 函数名(参数1,参数2): ‘’’函数注释’’’ print(‘函数体’) return 返回值 定  义:def关键字开关,空格之后接函数名和圆括号,最后冒号结尾 def ...

  4. 10分钟学会Python函数基础知识

    看完本文大概需要8分钟,看完后,仔细看下代码,认真回一下,函数基本知识就OK了.最好还是把代码敲一下. 一.函数基础 简单地说,一个函数就是一组Python语句的组合,它们可以在程序中运行一次或多次运 ...

  5. Python函数基础和函数参数

    函数的定义和函数的调用 return的作用 三种参数的定义 常用的内置函数 len() 函数基础 函数的定义 def 函数名(参数): pass return 表达式 pass在这里表示什么都没有,不 ...

  6. python函数基础

    一.基础 函数的定义 def 函数名(参数): ... 函数体 ... 返回值 #如果函数执行完毕也没有return语句时,自动return None. 空函数 如果想定义一个什么事也不做的空函数,可 ...

  7. python 函数基础介绍

    函数是对程序逻辑进行结构化或过程化的一种编程方法.能将整块代码巧妙地隔离成易于管理的小块,把重复代码放在函数中而不是进行大量的拷贝. 一.函数创建 def 函数创建格式如下: def function ...

  8. Python函数基础学习(定义、函数参数、递归函数)

    1.本程序是测试函数的基础.函数的参数.递归函数的测试. 函数的参数有: 必选参数.默认参数.可变参数.命名关键字参数和关键字参数 #!/usr/bin/python # -*- coding: ut ...

  9. python函数基础 与文件操作

    函数的定义 函数是通过赋值传递的,参数通过赋值传递给函数.def语句将创建一个函数对象并将其赋值给一个变量名,def语句的一般格式如下: def function_name(arg1,arg2[,.. ...

  10. 4.python函数基础

    一.函数 1.函数简介 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但 ...

随机推荐

  1. HQL查询步骤

    HQL查询步骤 1.获取Hibernate Session对象 2.编写HQL语句 3.以HQL语句作为参数,调用Session的createQuery方法创建查询对象 4.HQL语句包含参数,则调用 ...

  2. Java和Flex整合报错(三)

    1.错误描述 信息: Initializing Spring FrameworkServlet 'mvc' 11-13 23:43:42 INFO [localhost-startStop-1] or ...

  3. WPF基础篇之资源文件路径

    WPF资源文件的路径 关于WPF资源文件的路径 这几天在WPF中调用资源文件的Uri时,因为是在代码里调用Uri写的Uri总是不对,要么运行直接报异常,要么说找不到资源文件.下面是我解决的整个经过和碰 ...

  4. 让你的微信小程序具有在线支付功能

    前言 最近需要在微信小程序中用到在线支付功能,于是看了一下官方的文档,发现要在小程序里实现微信支付还是很方便的,如果你以前开发过服务号下的微信支付,那么你会发现其实小程序里的微信支付和服务号里的开发过 ...

  5. Python基础__字典、集合、运算符

    之前讨论的字符串.列表.元组都是有序对象,本节则重点讨论无序对象:字典与集合.一.字典 列表是Python中的有序集合,列表中的序指的是列表中的元素与自然数集形成了一个一一对应的关系.例如L=['I' ...

  6. CenoOS 7环境下编译OpenJDK8

    一.准备工作 1.与编译jdk7的不同(如未编译过Jdk7可以不看) 1.1.不再使用"$make sanity"来检查编译环境,而是改用"$./configure&qu ...

  7. 洛谷P3434 [POI2006]KRA-The Disks(线段树)

    洛谷题目传送门 \(O(n)\)的正解算法对我这个小蒟蒻真的还有点思维难度.洛谷题解里都讲得很好. 考试的时候一看到300000就直接去想各种带log的做法了,反正不怕T...... 我永远只会有最直 ...

  8. 【最新】Power BI混合现实应用Mixed Reality app预览版正式发布

    1.介绍 2018年3月13日,Power BI在官方博客和Docs文档发布了Power BI for Mixed Reality应用预览版的消息, 也就是可以以后在更虚拟的世界中来观察你的报表,想象 ...

  9. 今年暑假不AC【贪心】

    Problem Description "今年暑假不AC?""是的.""那你干什么呢?""看世界杯呀,笨蛋!"" ...

  10. Rotational Region CNN

    R2CNN 论文Rotational Region CNN for Orientation Robust Scene Text Detection与RRPN(Arbitrary-Oriented Sc ...