我们将完成特定功能的代码块放在一个.py结尾的文件中,这个文件被称为模块。在这个模块中可能包含变量,函数,类等等内容。

当我们从外部需要用到这个模块时,就需要将这个模块导入到我们当前环境。导入方式有以下几种。

import 模块

import 模块.函数

from 模块 import 函数

当被导入模块和,调用模块在同一级目录下是以上方式可以直接使用。当我们项目越来越大时,模块也越来越多,可能将多个不同的功能模块放在多个不同的目录下。我们将多个模块放在一个目录(假定目录名是A)下,A我们就称为包。简言之目录在python模块管理中被称为包。包通常包含模块,和一个__init__.py文件。__init__.py文件可以为空。

python中包的导入方式

from 包.模块 import 函数

from 包 import 模块

以上两种方式都是可行的。当然,在python3版本中,__init__.py 文件无强制要求,当包中无__init__.py文件时,其实也可以进行导包。

示例测试:

目录结构

core下包含三个文件:test.py Modle/module_1.py   module_2.py  ,Modle/__init__.py

module_1.py 添加以下代码

#!coding=utf-8
#Author : littleboss
#Datetime : 2022年6月12日, 0012 10:11
# Project : rain name_1 = "one day" print("module_1 已经被导入") def first0():
print("导包 -> first0函数已经被执行") def first1(a,b):
c = a + b
return c def first2(arc):
print(arc) def first3(arc):
from random import choice
aaa = ["sun","rain","wind"]
return choice(aaa) class Student:
def __init__(self, name, id, sex, age):
""" student dealwith func"""
self.name = name
self.id = id
self.sex = sex
self.age = age def brithday_year(self):
from _datetime import datetime
year = datetime.now().strftime("%Y")
year = int(year) - self.age
return year

module_2.py   添加以下代码

#!coding=utf-8
#Author : littleboss
#Datetime : 2022年6月13日, 0013 15:22
# Project : rain def one_1():
print("module_2") def one_2(ars):
print(ars) print("moudle_2.py 我执行啦")

这样,我们就创建好了一个包。

Modle
     ┠── __init__.py
     ┠── module_1.py
     ┗━━  module_2.py

python包的导入

import core.module_2

#输出:
D:\anaconda3\envs\python3.6\venv\Scripts\python.exe D:/PycharmProjects/rain/test.py
moudle_2.py 我执行啦 Process finished with exit code 0
from core.module_2 import one_2
one_2("python 练习") 执行结果:
D:\anaconda3\envs\python3.6\venv\Scripts\python.exe D:/PycharmProjects/rain/test.py
moudle_2.py 我执行啦
python 练习

__init__.py 添加

#!coding=utf-8
#Author : littleboss
#Datetime : 2022年6月13日, 0013 21:12
# Project : rain print("导入 Modle包")
import core.Modle
print(core.Modle)
print(type(core.Modle)) #输出结果:
#D:\anaconda3\envs\python3.6\venv\Scripts\python.exe D:/PycharmProjects/rain/test.py
导入 Modle包 Process finished with exit code 0

可见导包的本质,实际还是模块。

from core.Modle import module_1
module_1.first0() 输出结果:
导入 Modle包
module_1 已经被导入
导包 -> first0函数已经被执行

python导包的更多相关文章

  1. python导包学习总结

    python初学者,对于导包纠结了不少时间,总结分享,持续前进~ Python导包的两种方法: 1.1  from 包.模块  import 方法名,调用时直接使用方法名() 1.2  from 包. ...

  2. python导包显示No module named XXX问题

    最近用sublime text写python脚本,在导包是一直显示No module named XXX. 问题描述: 首先文件夹的目录结构如下: count.py文件,代码如下: #coding=u ...

  3. python导包语句执行

    今天在做项目中遇到一个问题,在first_page中引用login的登录方法,第一次执行登录可以正常登录,登录成功后,再选择返回主菜单,回到上个页面,再选择登录时报错“login_class isno ...

  4. python导包问题,这一篇就够了

    解决办法: 将项目所在的根目录添加到sys.path中 在入口文件中加入如下代码: import sys import os # 将 项目的根目录添加到sys.path中 BASE_DIR = os. ...

  5. 记一次Python导包经历

    最近由于需要写一个脚本调用另一个文件里面的一个方法,试了很久都导包失败,特此记录一下 问题背景 1)脚本文件为send_reward.py,要调用public_model_func.py里面的一个类方 ...

  6. python导包路径的修改

    1.sys os 模块 import sys import os 2.查看默认的导包路路径: print(sys.path) 3.路径拼接 os.path.join(url, 'apps')) 4.追 ...

  7. python导包一不小心就入坑(常用解决办法)

    常见导包报错: - ImportError:No module named - SystemError: Parent module '' not loaded, cannot perform rel ...

  8. 太酷炫了!!我会Python 导包八种方法,你呢?

    1. 直接 import 人尽皆知的方法,直接导入即可 >>> import os >>> os.getcwd() '/home/wangbm'复制代码 与此类似的 ...

  9. python导包踩过的坑之包名和模块名同名

随机推荐

  1. 美丽的神话 flac 成龙/金喜善 美丽的神话 mp3 韩红/孙楠

    这里分享从网上收集的俩个版本的歌,都很不错,有兴趣的可以听听 以下是成龙/金喜善 flac 版本,音质不错: 美丽的神话成龙/金喜善解开我最神秘的等待星星坠落风在吹动终于再将你融入怀中两颗心颤抖相信我 ...

  2. RestTemplate用法

    RestTemplate 用法 RestTemplate简介 RestTemplate 是一个同步的web http客户端请求模板工具,spring框架做的抽象模板, 常见的http客户端请求工具有: ...

  3. 【java】学习路径28-Java集合类知识点总结+练习题(去重)

    Java集合 1.集合和数组的区别 (1)  集合可以改变长度 (2)  数组长度不可变 2.ArrayList (1)  add addAll (2)  remove removeAll (3)   ...

  4. JavaScript设计模式及代码实现——单例模式

    单例模式 1 定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 2 应用时机 当一个类的实例被频繁使用,如果重复创建这个实例,会无端消耗资源.比如 dialog 弹窗会被全局重复使用 业务 ...

  5. 第七十篇:Vue组件的使用

    好家伙, 1.vue的组件化开发 1.1.什么是组件? 组件是对UI结构的复用, vue是一个支持组件化开发的前端框架, vue中规定:组件的后缀名是.vue 例如:App.vue文件本质上就是一个v ...

  6. 关于KingbaseES临时文件过大问题

    背景 前几天碰到一个问题,现场并发很高,数据量很大(6T),主备库经常出现临时文件过多. 临时文件概念: 当私有进程buffer不够用时,会将buffer内容dump到tempfile供数据库正常sq ...

  7. Linux_etc-shadow文件总结

    shadow 文件权限 $ll shadow ---------- 1 root root 1131 Aug 6 12:04 shadow 可以看出只有root可以操作它,普通用户执行passwd,内 ...

  8. spark 执行spark-example

    1. 找到CDH 安装spark的目录 执行 which spark-shell /usr/bin/spark-shell 执行 ll /usr/bin/spark-shell lrwxrwxrwx ...

  9. 谣言检测——(GCAN)《GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Media》

    论文信息 论文标题:GCAN: Graph-aware Co-Attention Networks for Explainable Fake News Detection on Social Medi ...

  10. uniapp|微信小程序获取当前城市名称--逆地址解析

    六年代码两茫茫,不思量,自难忘 6年资深前端主管一枚,只分享技术干货,项目实战经验 关注博主不迷路~ 问题 uniapp开发的小程序需要获取当前城市名称 解决步骤 看文档 当然是看uniapp文档,我 ...