Python教程

2021-08-04Python基础学习之包

本文主要是介绍2021-08-04Python基础学习之包,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python基础学习

  • 一、包
  • 二、闭包
    • 1.递归函数
    • 2.闭包

一、包

  1. 包 本质是模块,所以包内可以含包
  2. 包 就是项目结构中的文件夹、目录 里面含有__init__.py文件的文件夹
  3. 作用: 用于将不同的模块进行分类管理,包本身不具有具体含义,用于文件分层管理
  4. 导包 import +包名 首先执行的是__init__.py文件中的内容
  5. __init__主要作用:可以导入此包内的其他模块 from 包名 import 模块名
  6. _ all :(可以在__init_.py文件中用此变量)一个列表,可以控制要引入的东西(模块,函数,类等)
  7. _ all _=[‘模块名’] 当为空时默认全部使用 适用于 from 包名 import *
  8. 在模糊导入时,形如from package import *,*是由__all__定义的。
testbao/__init__.py

# import testmokuai1
# import testmokuai2
__all__=['testmokuai1']
testbao/testmokuai1.py

print('这是包内的测试模块1')
def testbao1():
    print('这是测试包1号')
def testbao2():
    print('测试包2号')
testbao1()

testbao/testmokuai2.py
print('这是包内测试模块2')
test.py

# import testbao# 这是包内的测试模块1,模块2 前提是包内的__init__.py中导入了包内模块,才会执行模块内 内容
# from testbao import testmokuai2 #这是包内的测试模块2
# import testmokuai2#这是包内测试模块2
from testbao import *# 这是包内的测试模块1 \ 这是测试包1号
testmokuai1.testbao2()# 测试包2号

二、闭包

1.递归函数

在函数内部调用自己,不调用其他函数

  1. 必须有一个明确的结束条件
  2. 每进行更深一层递归时,问题规模比上次递归要有所减少
  3. 相邻两次重复间要紧密联系
  4. python递归深度是有限的

2.闭包

两个函数的嵌套,内部函数使用到了外部函数的 变量,这种现象叫产生闭包,此内部函数 称为闭包

构成条件

  1. 嵌套函数
  2. 内层函数 使用了 外层函数的 变量
  3. 外层函数的返回值是 内层函数的 函数名
# 递归函数
# 累积和
def add(n):
    if n==1:
        return n
    else:
        return n+add(n-1)
print(add(3))# 6
# 斐波那题数列

def fib(n):
    if n<=2:
    # if n<=1:
    #     return n
        return 1
    else:
        return fib(n-1)+fib(n-2)
print([fib(i) for i in range(1,13)])# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144]
# 、闭包
def outer():#外层函数
    n=10
    def inner():#内层函数
        print(n)#使用外层函数变零
    return inner# 返回内层函数名
print(outer())#<function outer.<locals>.inner at 0x00000229519AF268>
f=outer()
print(f)#<function outer.<locals>.inner at 0x000002227A7AF268>
f()# 10 调用内部函数




* 当全世界都说你是疯子的时候,你就离成功不远了

这篇关于2021-08-04Python基础学习之包的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!