Python 基础之import导包

python

首先需要将import内容建立一个大概如下层级的包:

以黑色框为第一级,蓝色框为第二级,棕色框为第三级,红色框为第四级

一.import 引入初识

首先在module.py写入代码如下:

xboy = "hsz"

xgirl = "zero"

def dog():

print("小狗喜欢啃骨头")

def cat():

print("这个小猫的名字叫做小花")

class MyStu():

name = "Python"

print("hello python")

print(__name__)

if __name__ == "__main__":

#如果是间接的被导入,下面的代码不执行

print("test")

然后在main.py写入代码并逐个运行:

1.import 引入

import module

#请记住:当导入模块的时候,只需要一次即可,终身受益.不会出现重复导入的情况

#模块.属性(变量)

res = module.xboy

print(res)

#模块.函数(方法)

module.dog()

#模块.类

print(module.MyStu().name)

#使用别名调用模块当中的成员

import module as m

print(m.xboy)

m.cat()

import sys

print(sys.path)

"""

#自定义模块,进行导包

'''

在导包的时候,系统默认先从sys.path 这个路径开始寻找,如果找不到,直接报错,

如果想要找到,把相应的路径插入到sys.path这个列表,系统自动寻找对应模块.

'''

import sys

"""

sys.path.append(r"F:/hsz/zero/ceshi_module/") #

import abcd

print(abcd.ceshi001)

然后对上面的mian.py里的内容进行注释,往后添加如下代码进行一步步运行:

 2.from...import 从哪里..引入...方法

#引入一个

from module import dog

dog()

#引入多个

from module import cat,xgirl

cat()

print(xgirl)

#引入所有 * 代表所有

from module import *

print(xboy)

#可以在引入的同事,起一个别名

from module import cat as c,xboy as ww

print(ww)

c()

print(__name__,type(__name__)) #__main__

"""

#返回模块名字的魔术属性 __name__

如果当前文件是直接执行的,就是主文件(主进程),返回__main__

如果当前文件是间接执行的,就是子文件(子进程),返回当前文件名(模块名)

"""

if __name__ == "__main__" : #if "main" == "__main__" 条件不成立 , 下面的代码不执行,不导入

# __name__ == __main__ 用来做测试用的, 在被间接导入的时候,下面的代码不需要导入

print("test code")

3.学习导入包

先对a.py 写入代码:

 

ceshia = 10011

ceshia2 =10012

ceshia3 = 10013

 

对mypath.py写入代码:

 

def join():

print("自定义join")

ceshimypath = "mypath2345678"

 

还有package1下的__init__.py

ceshi101 = 10111111

# __init__ 不是用来直接运行的,而是伴随包的初始化的.

# 方法三调用时,打开进行测试.

# from package1 import a

# from package1 import mypath

然后对main2.py写入代码,一个方法一个方法进行运行

#文件就是一个模块,文件就是一个包

#文件夹里面可以有很多文件,就相当于包中有很多的模块

#如果想把包当成模块用,在创建一个__init__.py中进行定义

#当引入一个包的时候,当前包下的__init__文件自动执行

import package1

print(package1.ceshi101)

#方法一

import package1.a

print(package1.a.ceshia)

#方法二 (起别名)

import package1.a as pa

print(pa.ceshia2)

#方法三

# print("======方法三=========")

# print(package1.a.ceshia)

# package1.mypath.join() # 类比os.path.join的用法

注意:方法三只有在用的时候才将注释去掉运行测试,为了不影响接下来的运行,运行完方法3后对其进行注释

4.from ..import 语法

然后对main2.py接下来的运行做好准备,需要在个个包下的文件添加内容如:

/package2/pkgone/pkgone2.py 内容为:

ceshippone2 = "ceshione2"

ceshippone22 = "ceshione22"

/package2/pkg_module1.py内容为:

ceshim1 = "m1"

/package2/pkgtwo/pkgtwo1.py内容为:

ceshi222 =222

ceshi2222 = 222222

接下来是main2.py添加如下代码:

#引入package1包下 a模块中的ceshia2 属性

from package1.a import ceshia2

print(ceshia2)

#引入的同事,起别名

from package1.mypath import ceshimypath as cm,join as j

print(cm)

j()

## 引入 package2 包下的 pkgone 包下的 pkgone1 模块 ,顺便起别名ppp1

import package2.pkgone.pkgone1 as ppp1

print(ppp1.ceshippp)

对此代码块进行一 一测试

5.单入口模块(重要)

分模块不能单独进行调用,统一由主文件main进行调用

模块之间的互相嵌套导入使用相对路径实现

单入口文件必须和包在同一层级,包里面可以含有各种包和模块


#单入口模式主要是对子文件的内容进行测试,在/package2/pkgone/pkgone1.py文件下添加如下代码:

ceshippp = "测试pppone"

ceshippp1 = "测试pppone1"

#子文件,如果是单入口模块,不能直接执行,因为在这里都用的的相对路径

#1.

from . import pkgone2

print(pkgone2.ceshippone22)

#2.

from.pkgone2 import ceshippone2

print(ceshippone2)

#3.

from .. import pkg_module1

print(pkg_module1.ceshim1)

#4.

from .. pkgtwo import pkgtwo1

print(pkgtwo1.ceshi222)

#5.

from ..pkgtwo.pkgtwo1 import ceshi2222

print(ceshi2222)

"""

. 当前路径

.. 上一级路径

... 上一级的上一级

.... 上一级的上一级的上一级

..... (这里的点是无限的)

from .......................................... import 模块

"""

最后是在main2.py进行测试,将pkgone1.py文件一行行注释后,然后分5次将注释打开进行测试,并查看结果,理解单入口模式的使用方法

以上是 Python 基础之import导包 的全部内容, 来源链接: utcz.com/z/386944.html

回到顶部