python_函数
Posted qinxin1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_函数相关的知识,希望对你有一定的参考价值。
一、函数嵌套
# 函数的嵌套调用 def foo(): bar() # 函数的嵌套定义 def f1(): def f2(): # f2=函数的内存地址 pass print(f2) f2()
二、名称空间与作用域
名称空间:存放名字与值绑定关系的地方,x=[1,2,2,2,2,22,2,2,2,2]
内置名称空间:
1、存放python解释器自带的名字
2、解释器启动则生效,解释器关闭则失效
全局名称空间:
1、存放文件级别的名字
2、执行python文件时生效,文件执行完毕失效
局部名称空间:
1、存放函数内定义的名字,
2、函数调用时生效,函数调用结束则失效
加载顺序:内置-》全局-》局部
名字的查找的顺序:局部->全局-》内置
# x=0
def f1():
# x=1
def f2():
# x=2
def f3():
# x=3
def f4():
# x=4
print(x)
f2()
f1()
作用域:
全局范围:
内置+全局
全局有效,全局存活
局部范围:
局部
局部有效,局部存活
作用域关系是在函数定义阶段就规定死,与调用位置无关,
也就是说,无论函数在哪儿调用,都必须回到当初定义函数时的位置找作用域关系
三、函数对象
1 可以被引用 2 可以当中参数传给另外一个函数 3 可以当中函数的返回值 4 可以当中容器类型的元素
#1、可以被引用
# x=1
# y=x
# def bar():
# print(‘from bar‘)
#
# f=bar
# f()
#2、可以当中参数传入
# x=1
# def func(a):
# print(a)
#
# func(x)
# def bar():
# print(‘from bar‘)
#
# def wrapper(func): #func=bar
# func() #bar()
#
# wrapper(bar)
#3、可以当中函数的返回值
# x=1
# def foo():
# return x
#
# res=foo()
# print(res)
# 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()
#4、可以当中容器类型的元素
# x=1
# l=[x,]
#
# print(l)
# def get():
# print(‘from get‘)
#
# def put():
# print(‘from put‘)
#
# l=[get,put]
#
# # print(l)
# l[0]()
xxx
#4 可以当中容器类型的元素 def auth(): print(‘登陆。。。。。‘) def reigster(): print(‘注册。。。。。‘) def search(): print(‘查看。。。。‘) def transfer(): print(‘转账。。。。‘) def pay(): print(‘支付。。。。‘) dic={ ‘1‘:auth, ‘2‘:reigster, ‘3‘:search, ‘4‘:transfer, ‘5‘:pay } # print(dic) # dic[‘2‘]() def interactive(): while True: print(""" 1 认证 2 注册 3 查看 4 转账 5 支付 """) choice=input(‘>>: ‘).strip() if choice in dic: dic[choice]() else: print(‘非法操作‘) interactive() # l=[auth,reigster,search,interactive] # print(l)
四、闭包函数
定义在函数内部的函数,并且该函数包含对外部函数作用域(强调:对全局作用域名字的引用不算闭包)名字的引用,该函数称为闭包函数 def outter(): x=1 def inner(): print(x) return inner func=outter() #func=inner func()
xxx
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_函数的主要内容,如果未能解决你的问题,请参考以下文章