码迷,mamicode.com
首页 > 编程语言 > 详细

python_函数

时间:2019-01-21 22:53:18      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:rac   status   阶段   strip()   返回   http   style   一个   函数嵌套   

一、函数嵌套

# 函数的嵌套调用
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_函数

标签:rac   status   阶段   strip()   返回   http   style   一个   函数嵌套   

原文地址:https://www.cnblogs.com/qinxin1/p/10301266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!