模块导入:

'''
在python中,模块是代码组织的一种方式,把功能相近的函数放到一个文件中,一个文件(.py)就是一个模块(module),
模块名就是文件名去掉后缀py,这样做的好处是:-提高代码的可复用、可维护性。一个模块编写完毕后,可以很方便的在其他项目中导入
-解决了命名冲突,不同模块中相同的命名不会冲突
--------------------------------------------------
常用标准库  说明
builtins  内建函数默认加载(不是默认的需要导入)
math   数学库
random  生成随机数
time  时间
datetime    日期和时间
calendar    日历
hashlib     加密算法
copy   拷贝
functools   常用工具类
os    操作系统接口
re    字符串正则匹配
sys   Python自身的运行环境
multiprocessing   多进程
threading  多线程
json   编码和解码 JOSN对象
logging  记录日志,调试1、自定义模块
2、使用系统的一些模块导入模块:
1、import 模块名模块名.变量 模块名.函数  模块名.类
2、from 模块名 import 变量 | 函数 | 类在代码中可以直接使用变量,函数,类
3、from 模块名 import *(表示该模块中所有内容)
通过__all__ = ['add','number]可以限制*全部导入的内容,列表中的表示可以访问到的内容
4、from 或者import的时候,会把整个模块代码加载到内存
如果不希望其进行调用。就会用到__name__
在自己的模块里面__name__叫:__main__
如果再其他模块中通过导入的方式调用的话:__name__:模块名'''
__all__ = ['add','number'] #表示外面只能获取add和number
#变量
number = 100
name = 'huitao'
#函数
def add(*args):if len(args) > 1:sum = 0for i in args:sum += ireturn sumelse:print('至少传入俩个参数......')def minus(*args):if len(args) >1:m=0for i in args:m -= ireturn melse:print('至少传入俩个参数......')def multipy(*args):passdef divide(*args):pass#类
class Calcula:def __init__(self,num):self.num = numdef test(self):print("开始计算")@classmethoddef test1(cls):print('类方法')def test2():print("测试中")#不希望模块外加载test2方法
if __name__  == '__main__':test2()
list1 = [4,2,7,8,9]
# #导入模块
# import calcu
#
# #使用模块中的函数 模块名.变量 模块名.函数  模块名.类
# less = calcu.add(*list1)
# print(less)
#
# #使用模块变量
#
# print(calcu.number)
#
# #使用模块中类
# cal = calcu.Calcula(89)
# cal.test()
#
# #类方法
# calcu.Calcula.test1()#导入一部分
from calcu import add,number,Calcula
from calcu import number
sj = add(*list1)
print(sj)
sum = sj +number
print(sum)

注意:模块循环导入

'''
循环导入:俩个文件互相调用里面的方法|大型项目中需要很多python文件,由于架构不当,可能会出现模块之间的相互导入
A:模块def test()f()
B:模块def f()test()避免产生循环导入:
1、重新架构
2、将导入的语句放到函数里面
3、把导入语句放到模块的最后'''

包的导入:

#模块是文件与文件之间的调用
#包就是不同文件夹之间调用。不同包里面允许使用相同的模块名字
#包和文件夹区别
#包(Python package):里面放的是py文件,文件夹(Directory)放的是非py文件
#文件夹里面放一个__init__.py文件,文件夹就是一个包
#包命名:数字、字母、下划线,不能纯数字
#一个包中可以存放多个模块
#项目>包>模块>类、函数、变量
'''
from 包 import 模块
from 包.模块  import 类|函数|变量   (绝对路径)
from 包.模块 import *
通过__all__ = ['不想要被访问的模块'](只会在*的时候起作用)
同一个包里面也要使用from 包.模块  import 类|函数|变量  导入
from .模块  import 类|函数|变量   (同一个包下导入,可以直接使用.(相对路径))
'''

包下面__init__.py的作用:

__all__ = ['calcu'] #向外暴露的模块是什么
print('----','day05的init')def create_app():print('创建app')
'''
一个文件夹里面有__init__.py就是一个包
导入包的时候,首先要执行的就是__init__.py,可以做数据初始化
作用:0、结合__all__进行使用
1、当导入包的时候,把一些初始化的函数,变量,类定义在__init__.py文件中
2、此文件中函数,变量等的访问,只需要通过包名,函数.......
3、from 模块 import*   表示可以使用模块里面的所有内容,如果没有定义__all__所有的都可以访问,但是如果添加上__all__,只有all里面的可以访问。
4、from 包 import*   表示该包中的内容是不能访问的,__init__里面的__all__向外暴露可以访问的模块'''
#导入包
import day05
#from day05 import*day05.create_app()

python笔记记录(包和模块)相关推荐

  1. 对于python来说、一个模块就是一个文件-PYTHON中的包和模块

    为了更加友好的对python代码进行组织管理,python中出现了包和模块的概念 类似生活中整理我们的物品一样,将代码按照不同的功能进行整理整合,可以很大程度的提升代码可读性和代码质量,方便在项目中进 ...

  2. Windows下python使用twine包发布模块

    本文讲解如何在Windows下,python使用twine包发布模块. 分享是美德 大Python有个模块发布功能,模板其实就是一个或多个函数打包的集合,当你写完一个函数,保存为.py文件后,可以进行 ...

  3. python库、包及模块的关系

    一直认为import库时,如果导入高层名称,那么其子功能一定能够使用,通过一个例子来说明我想表达的意思: 问题描述:中文分词,提出中文标点符号. 解题思路:确定有哪些中文标点符号,再提出? 有哪些标点 ...

  4. Python笔记之通过PyWin32模块实现在QQ聊天窗口自动发送消息

    文章目录 PyWin32模块 简介 安装 帮助文档 程序代码 调用的函数 1. win32clipboard.SetClipboardData(format, hMem) 作用 参数 返回值 2. w ...

  5. python调用jar包的模块_使用 Python 的 JPype 模块调用 Jar 包

    背景与需求 最近学习并安装使用了HttpRunner框架去尝试做接口测试,并有后续在公司推广的打算. HttpRunner由Python开发,调用接口时需要依赖Python:而大多数公司的扩展工具包使 ...

  6. 【Python笔记】使用 re 模块实现正则表达式操作

    使用 re 模块实现正则表达式操作 匹配字符串 使用 match() 方法进行匹配 使用 search() 方法进行匹配 使用 findall() 方法进行匹配 替换字符串 使用正则表达式分割字符串 ...

  7. Python笔记:利用pygame模块实现三原色颜色滚动条效果

    import pygame from pygame.locals import * from sys import exit def create_scales(height):#用于创建指定大小的图 ...

  8. python 导入包 作用域_Python 包、模块、函数、变量作用域

    Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量 Python是利用包和模块来组织一个项目的. 包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个 ...

  9. python函数对变量的作用_Python 包、模块、函数、变量作用域

    Python 项目的组织结构 - 包 -- 模块 --- 类 ---- 函数.变量 Python是利用包和模块来组织一个项目的. 包: 包的物理表现是一个文件夹,但是一个文件夹却不一定是个包,要想让个 ...

最新文章

  1. 基于asp.net2.0中membership系统角色、用户、资源的权限设计
  2. 使用PaupGUI软件合并一致性树consensus tree
  3. vue 2.0 :key的作用
  4. jsoup获得css,Jsoup代码解读之五-实现一个CSS Selector
  5. line和spline_探索适用于Apache Spark的Spline Data Tracker和可视化工具(第1部分)
  6. Bootstrap3 响应式表格
  7. 双11过后张勇感谢快递小哥:再大的纪录都是靠大协作来完成的
  8. 用友ERP-U8执行完成流程小记
  9. JSON.stringify和JSON.parse之间的区别
  10. 【玩转开源】BananaPi R2——移植RPi.GPIO 到 R2
  11. 基础概念 | 公约数、公倍数、互质数
  12. javascript回调函数详解
  13. Java对上传的图片进行格式校验以及安全性校验
  14. 时间序列分析教程(一):基本性质
  15. 随机森林算法: 实战基于随机森林的医疗费用分析与建模预
  16. 修改VirtualBox中mac的分辨率
  17. tensorflow报No OpKernel was registered to support Op ‘NcclAllReduce‘
  18. ppt编写方法和指南
  19. 【Python码住雪景小程序】雪景人像最强攻略:让你一下美10倍、美醉了(中国人不骗中国人)
  20. 学生免费领取阿里云ECS云服务器并使用全过程(部署个人博客项目)

热门文章

  1. ubuntu下用vagrant搭建集群环境
  2. Chapter 3 Phenomenon——6
  3. 服务器添加管理员隐藏账号,绝招:隐藏管理员账号 三分钟搞定
  4. html文件的获取,获取html文件Java
  5. c语言十几行编译出上百k,二级C语言上机编程题技巧总结选读.doc
  6. popstate_详解HTML5之pushstate、popstate操作history,无刷新改变当前url
  7. outlook可以显示多少行文本_Linux学习从处理文本开始
  8. 序列化_SpreadJS序列化与反序列化表格Serialization+Deserialization
  9. 怎样用springboot开发cs_SpringBoot如何进行学习!
  10. 情人节海报模板,甜到牙疼!