08-python模块与包

文章目录

一、模块

一、模块
一个py文件就是一个模块
导入模块两种方法:
import 模块名
from 模块名 import 功能 (安全,推荐)

模块使用原理 :用 “.” 调用,比如random.random
在这里插入图片描述
注意点:新增加的模块通过import调用时,pycharm不识别会飘红,通过下面的方式解决
鼠标右键目录名 ——> Mark Directory as ——> Source Root
在这里插入图片描述
1、先创建一个模块(modes.py)

gongneng1 = '我会跳'           # 功能1

def gongneng2():              # 功能2
    print('You jump I jump')

2、通过import导入这个模块
用法: 模块名.功能, 【“.” 是 “的” 的意思】

import modes             # 注意这里没有.py
print(modes.gongneng1)   # 调用模块里面的功能1
modes.gongneng2()        # 调用模块里面的功能2
-------------------------------------------------
我会跳
You jump I jump

3、通过from…import… 导入模块(安全,推荐)
用法: 调用功能

from modes import gongneng1
print(gongneng1)    # 直接使用功能1
-------------------------------------
我会跳

from modes import gongneng2
gongneng2()         # 直接使用功能2
--------------------------------------
You jump I jump

4、程序入口
写模块的时候用来自己做测试的代码,防止被调用者使用
用法:直接写main 回车补全代码

(1) 写模块:modes.py
gongneng1 = '我会跳'         # 功能1

def gongneng2():             # 功能2
    print('You jump I jump')

if __name__ == '__main__':   # 程序入口,我自己的测试代码
    print('这是我的测试代码')
----------------------------------------
这是我的测试代码


(2) 别人调用我写的模块就不会执行我的测试代码
import modes
print(modes.gongneng1)
modes.gongneng2()
--------------------------------
我会跳
You jump I jump

二、创建模块别名
常用于数据发掘工作

import modes2 as md2
md2.gongneng2()
---------------------------
You jump I jump

二、包

一、包
包的本质就是一个文件夹
包里面默认会有一个__init__.py文件,导入包的时候会先执行__init__.py,但是我们不用去管它,也不能删除它
包里面还可以创建其他的包
包里面用于存放各种模块
用法:
from 包.包 import 模块
from 包.包.模块 import 功能
1、鼠标右键文件夹,创建一个包,名字: bao
包名:
可以是bao_abc
不可以是bao-abc
在这里插入图片描述
1.1、包里面创建一个模块modes3.py
在这里插入图片描述
2、包的正确用法
from 包.模块 import 功能

from bao.modes3 import func
func()             # 直接执行功能
-----------------------------
我是第一个模块

from 包 import 模块

from bao import modes3
modes3.func()       # 模块.功能
-----------------------------
我是第一个模块

3、包的相对路径用法(了解)
相对路径只能在包里面使用(…/),但是需要去外面调用
需求:我在bao2的mode4.py里面使用相对路径(…/)去调用bao3的modes3.py
在这里插入图片描述

(1) 在modes4.py里面直接使用相对路径调用modes3.py是会报错的
from ..bao3 import modes3
modes3.func()
----------------------------------
ValueError: attempted relative import beyond top-level package  # 超出了执行范文
    

(2) 我只能在包(bao)外面去执行modes4.py,再让modes4.py去调用modes3.py才是正确的相对路径用法
# vim test3.py                 # 在bao外面创建一个py文件
from bao.bao2 import modes4    # 执行这个py文件就可以调用modes3.py
-----------------------------------
我是modes3.py
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的爱迪生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值