ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-08-04 12:29:38  阅读:186  来源: 互联网

标签:__ 函数 之包 包内 08 py 04Python 模块 import


Python基础学习

一、包

  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 调用内部函数




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

标签:__,函数,之包,包内,08,py,04Python,模块,import
来源: https://blog.csdn.net/qq_43734041/article/details/119377342

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有