Python函数二

  1. 名称空间的作用域

作用域:

就是作用的范围

1. 内置的

# 在任何阶段任何时间都可以使用 (全局有效)

2. 全局的

# 在任何阶段任何时间都可以使用 (全局有效)

3. 局部的

# 在函数内部阶段使用 (局部有效)

1.函数名可以当成变量赋值

def index():
#     print('from index')

'''函数名不加括号就是函数的内存地址'''


# a  = index
# a()
# print(a)

2.函数名可以当成变量赋值

def index():
#     print('from index')
#
# def func(a):
#     # print(a) # a => index
#     a()
#     print('from func')
# func(index)
# func(index())

3.函数名可以当成函数的返回值

def index():
#     print('from index')
#
# def func():
#     print('from func')
#     return index  # 返回的就是index函数的内存地址
#
# res=func()  # res就是index函数的内存地址
# res()

4.函数名可以当成容器类型的元素

def index():
#     print('from index')
#
#     return 'from index'
#
# # l = [11, 22, 33, index]
# l = [11, 22, 33, index()]
# print(l)
'''函数名只要加括号就会执行!!!'''

补充:简易注册的函数形式

func_dict = {
    '1': register,
    '2': login,
    '3': transfer,
    '4': shopping,
    '5': withdraw,
    '6': chongzhi,
}
while True:
    print("""
        1. 注册
        2. 登录
        3. 转账
        4. 购物
        5. 提现
        6. 充值
    """)
    choice = input('请输入编号:').strip()
    # 判断用户输入的编号在不在fund_dict这个字典里面
    if choice in func_dict:
        func_name=func_dict.get(choice)  # 函数的内存地址
        func_name()
    else:
        print('不存在')
  1. 函数的嵌套调用

例子:

def index():
#     print('from index')
#
# def func():
#     index()
#     print('from func')
#
# func()
def my_max(a, b):
    if a > b:
        return a
    return b

小案例:

def my_max(a, b):
    if a > b:
        return a
    return b

# 判断4个数的大小,返回大的
def many_max(a, b, c, d):
    res=my_max(a, b) # b
    res1=my_max(res, c)
    res2=my_max(res1, d)
    return res2

ret=many_max(1,2,3,4)
print(ret)
  1. 函数的嵌套定义

在函数内部定义函数

把复杂的功能隐藏起来,暴露给外界一个简单的接口

def all_func(type):
    
    def register():
        pass
    def login():
        pass
    
    def shopping():
        pass
    
    def transfer():
        pass
    
    if type == '1':
        register()
    elif type == '2':
        login()
    elif type == '3':
        shopping()
    elif type == '4':
        transfer()
    else:
        print('不存在')
        
all_func('1') # 注册功能
all_func('2') # 登录
  1. 闭包函数

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

包:内部函数使用外部函数名称空间的名字

只有同时满足以上两个条件的函数才是闭包函数

'''爬虫小知识'''
import requests

def func(url):
    # url = 'http://www.baidu.com'
    def get_content():
        # url = 'http://www.jd.com'
        # res=requests.get('http://www.baidu.com')
        res=requests.get(url)
        if res.status_code == 200:
            with open(r'aaa.html', 'wb') as f:
                f.write(res.content)
    
    return get_content

# res=func() # get_content
# res('http://www.jd.com')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值