09-模块和包

2018-10-30  本文已影响1人  努力爬行中的蜗牛
模块的概念

模块是python程序架构的一个核心概念。

语法:
# 方式1
import 模块1,模块2

# 方式2:推荐使用
import 模块1
improt 模块2
导入模块是指定别名
语法:
# 注意:模块的别名应该符合大驼峰法
import 模块名 as 别名
from ... import
# 从模块导入某一个工具
from 模块名1 import 工具名

from hm_01_测试模块1  import Dog
from hm_01_测试模块1  say_hello

# 使用时不再需要模块名
sayHello()

wangcai = Dog()

注意:如果两个模块中,存在相同的函数名,那么后倒入的模块会覆盖掉先导入的模块的函数,如果希望同时使用两个函数,可以使用别名的方式来调用。

from hm_01_测试模块1  say_hello as module_say_hello
from hm_01_测试模块2  say_hello

say_hello 
module_say_hello
from ... import * 也可以一次性导入所有内容,但不推荐使用。
模块搜索顺序

python解释在导入模块时,会:

python中,每一个模块都有一个内置属性__file__可以查看模块的完整路径
注意:在开发中,不要命名和系统模块同名的文件。

import  random

print(random.__file__)
rand = random.randint(0, 10)
print(rand)
开发原则

__name__属性

def say_hello():
    print("你好,这是测试")

# 如果直接执行莫夸夸,__main__,否则是模块名
if __name__ == "__main__":
    print(__name__)
    # 文件名被导入时,能够直接执行的代码不需要被执行
    print("小明开发的模块")
    say_hello()
包的概念

创建包的方式有两种:

要在外界使用包中模块,需要在__init__.py文件中指定对外提供的模块。

发布模块

如果希望自己开发的模块,分享给其他人,可以按照以下步骤进行操作
1. 制作发布压缩包步骤:

from distutils.core import setup

setup(name="hm_message",  # 包名
      version="1.0",  # 版本
      description="itheima's 发送和接收消息模块",  # 描述信息
      long_description="完整的发送和接收消息模块",  # 完整描述信息
      author="itheima", # 作者
      url="www.itheima.com",  # 主页
      py_module=["hm_message.send_messge",
                 "hm_message.receive_message"])
python3 setup.py build
python3 setup.py sdist

2. 安装模块

tar -zxvf hm_message-1.0.tar.gz
sudo python3 setup.py install

3. 卸载已经安装过的模块
直接从安装目录下,把安装模块的目录删除即可。可以使用模块.__file__查询模块所在目录。

cd 安装模块目录
rm -r 模块目录
pip安装第三方模块

安装和卸载功能如下:

# 将模块安装到Python2.x环境
sudo pip install pygame
sudo pip uninstall pygame

# 将模块安装到Python3.x环境
sudo pip3 install pygame
sudo pip3 uninstall pygame

mac下安装ipython

sudo pip insatall ipython
上一篇 下一篇

猜你喜欢

热点阅读