python中包,模块,类的相关知识

python中包,模块,类的相关知识

一,python项目的组织结构

分为:包,模块,类

二,python中包与模块的关系

区分模块(命名空间)

bao1.mokuai
	bao2.mokuai

包与模块也可平级
在包下创建一个__init__.py模块
查询直接使用bao1,而不用使用bao1.__init__

三,使用import导入模块

如何让在一个文件里导入另一个模块(同级)
如c7中a=7
在c8中操作

import c7
	print(c7.a)

输出为7
如果c7在t的子包里
则需要import t.c7
如果包的嵌套过多,则命名空间过长
但可用import t.c7 as m代替,则使命名空间过长简短

四,from import导入变量

from t.c7 import a导入变量
也可导入模块from t import c7
如果有多个变量,也可导入:from t.c7 import *
如果想导入指定多个变量:
可在c7包里说明使用:

_all_=['a','b','c']
a=2
b=3
c=4

则可导入上三个变量
如果写为__all__=['a','c']
则在c8中的*就无法导入b的变量
from t.c7 import a,b,cfrom t.c7 import (a,b,c)也可

五,init.py的用法

python中建议一行中代码长度不超过80的,解决换行的方法:在行末加上一个反斜杠
__init__.py在t的包里
__init__.py中写入

a='This is a happy day.'
		print(a)

在c8里使用import t
则直接输出This is a happy day.
如果输入from t.c7import a
则也会输出This is a happy day.
__init__.py中输入_all_=['c7']则只能导出c7中的值

import sys
import datatime
import io

的导入
可将上三个导入写入__init__.py
在c8中写入import t
则可使用print(t.sys.path)
使导入的代码简略

六,包与模块的几个常见错位

包与模块不会重复的被导入
python中导入一个模块就会执行这个模块中的内容
注意:入口文件仅有一个

猜你喜欢

转载自blog.csdn.net/weixin_45955630/article/details/103762642