python基础入门之十八 —— 模块和包

一、模块

模块能定义函数,类和变量,模块里也能包含可执行代码。

1、 导入模块

  • import 模块名
  • from 模块名 import 功能名
  • from 模块名 import *
# 法1:import 模块
import math
print(math.sqrt(9))
# 法2:from 模块 import 功能1,功能2,……
from math import sqrt
print(sqrt(8))
# 法3:from 模块 import *
from math import *
print(sqrt(8))

2、模块别名

  • import 模块名 as 别名
  • from 模块名 import 功能名as 别名
# 别名1:
import time as t
t.sleep(1)
# 别名2:
from time import sleep as sl
sl(1)

3、制作模块

系统变量:

  • __all__:在使用from 模块/包 import *时,允许导入的模块或功能列表 
  • __name__:运行该模块的文件名:(1)如果在本文件内运行__name__值为__main__
  •                                                          (2)  如果在被其他文件调用时,__name__值为代码所在的文件名

模块:module.py

__all__ = [‘println‘,‘test‘]

def println(a,b):
    print(a+b)

def test(a,b):
    print(a*b)

if __name__ == ‘__main__‘:
 println(1,2)
 print(__name__)

调用文件:demo.py

from module import *

println(2,3)  # 5
test(1,2)  # 2

P.s:如果功能名字重复,调用到的是最后定义或导入的功能

二 、包

  • 将有联系的模块放在同一个文件夹下,并且在这个文件夹创建一个名字为__init__.py文件,那么这个文件夹就称作为包
  • 新建包mypackage

1、创建包

新建包后,包内部会自动创建__init__.py文件,这个文件控制着包的导入行为

2、导包

  • import 包名.模块名
  • from 包 import *

P.s:使用‘from 包 import *’这个导包一定要在__init__.py文件中定义__all__,否则报错

m1.py:

def info():
    print(‘my module 1‘)

m2.py:

def info():
    print(‘my module 2‘)

demo.py:

# 法一:import 包名.模块名
import bag.m1
bag.m1.info()  # my module 1

# 法二:from 包名 import *
from bag import *
m1.info()  # my module 1
# m2.info() # __all__列表中没有m2,报错

原文地址:https://www.cnblogs.com/LynHome/p/12650286.html

时间: 2024-08-30 10:51:23

python基础入门之十八 —— 模块和包的相关文章

python基础入门之十八 —— 面向对象版学员管理系统

main.py: from StudentMannager.manager import * if __name__ == '__main__': student_manager = Manager() student_manager.run() manager.py: from StudentMannager.student import * class Manager(object): def __init__(self): self.stu_list = [] # 一. 程序入口函数 de

Python基础笔记系列十:模块

本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Python代码段.#2.把相关的代码分配到一个模块里能让你的代码个更好用,更易懂.#3.模块也是Python对象,具有随机的名字属性用来绑定或引用.#4.简单来说,模块就是一个保存了Python代码的文件.模块能自定义函数,类和变量.模块里也能包含可执行的代码. 模块引入python提供了很多第三方的

python基础入门之十二 —— lambda表达式

一.语法 作用:简化函数代码 格式:lambda 参数列表 :表达式 P.s: lambda表达式参数可有可无,参数写法同函数 lambda函数能接收任何数量的参数但只能返回一个表达式的值 def func0(): return 100 func = lambda: 100 # lambda本质是一个匿名函数 print(func0) # <function func0 at 0x000001F7FE355160> print(func) # <function <lambda&g

Python自动化开发课堂笔记【Day04】 - Python基础(函数补充,模块,包)

表达式形式的yield yield的语句形式: yield 1yield的表达式形式: x=yield 1 x=yield 2 g.send('1111') #先把1111传给yield,由yield赋值给x,然后再往下执行,直到再次碰到yield,然后把yield后的返回值返回 协程函数示例 1 def gen(func): 2 def wrapper(*args,**kwargs): 3 res = func(*args,**kwargs) 4 next(res) #相当于next(g)或者

Python3快速入门(十八)——PyInstaller打包发布

Python3快速入门(十八)--PyInstaller打包发布 一.PyInstaller简介 1.PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序.PyInstaller 制作出来的执行文件并不是跨平台的,如果需要为不同平台打包,就要在相应平台上运行PyIn

Python基础学习(十)

Python I/O模型 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. 概念说明 在进行解释之前,首先要说明几个概念: 用户空间和内核空间 进程切换 进程的阻塞 文件描述符 缓存 I/O 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方).操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件

Python开发【第十八篇】:MySQL(二)

Python开发[第十八篇]:MySQL(二) 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当作表来使用. SELECT * FROM ( SELECT nid, NAME FROM tb1 WHERE nid > 2 ) AS A WHERE A. NAME > 'alex'; 临时表搜索 1.创建视图 --格式:CREATE VIEW 视图名称 AS SQL语句 CREATE VIEW v

(转)Inno Setup入门(十八)——Inno Setup类参考(4)

本文转载自:http://blog.csdn.net/yushanddddfenghailin/article/details/17251009 编辑框 编辑框也叫文本框,是典型的窗口可视化组件,既可以用来输入文本,也可以用来显示文本,是程序设计中最常用的组件之一,可以获取用户输入的许多信息.Pascal中的编辑框由类Tedit实现,该类的定义如下: TEdit = class(TCustomEdit) property AutoSelect: Boolean; read write; prop

MyBatis基础入门《十五》ResultMap子元素(collection)

MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association )> >>collection >> 复杂类型集合,一对多 >> 内部嵌套 > 映射一个嵌套结果集到一个列表 >> 属性 > property : 映射数据库列的实体对象的属性 > ofType : 完整java类名或别名(集合所包括的