首页 > 编程语言 > 详细

Python Day 18(模块和包)

时间:2018-05-23 19:50:36      阅读:237      评论:0      收藏:0      [点我收藏+]

Python Day 18(模块和包)

模块

#什么是模块?
#如何使用?
#import py文件 就是执行这个py文件
#如何在当前文件中执行导入模块中的函数或变量
# 导入的模块名.函数名
# 导入的模块名.变量
#模块是否可以被多次导入吗?
#不可以,只有一次生效
# 发生了什么?
#import mymodules
#检测模块名字是否存在,如果有就不继续导入

技术分享图片

 


#print(sys.modules.get(‘mymodules‘))
#如果没有,创建一个属于这个模块的命名空间。
#执行这个模块中的代码,将模块中的名字存储在这个模块的命名空间中

import sys
print(sys.modules.get(mytemp))
import mytemp
import mytemp
import mytemp
print(sys.modules)
print(sys.modules.get(mytemp))

#为什么pycharm报错的代码还能执行
#对于自定义模块,pycharm只认项目根目录中的,会报错
#如何处理?
# 可以设置当前目录为项目根目录。
#python解释器会从当前目录,和lib根目录进行查找
#pycharm会将项目目录加入环境变量中
#print(sys.path) #查看环境变量

import sys
print(sys.path)
path = D:\Learn\Python全栈开发\Day17
sys.path.append(path)
#修改环境变量列表,控制哪些路径下的模块可以被顺利导入
print(sys.path)


#项目开发规范#

  导入模块的方法

  

  import xx

  import xx as 别名

  from xxx import xxx as xxxx

  from xxx import xxx as xx,xxxxxx as xx

  import time,os,sys #可以一行导入多个,不推荐使用

  from xxx import *

     此方法可以直接用,但是发送命名冲突,几率低,主要会降低可读性引起歧义
  对应导入文件中设置 __ALL__ = [‘变量‘,‘函数名‘],此方法只约束*,可以直接导入其他的


要执行整个要导入的文件,导入了全局
技术分享图片

 


会不会和全局的变量发生冲突?
  from import导入的变量会发生冲突
如果导入的是price ,my_moudel是否能用?
  不能用
func1是否还能用?
  不能用
导入调用price 的func1 price能否直接用?
  func1可以调用price,不能直接用。


导入模块的顺序
  一次性将需要的都写入开头
  先写内置模块,扩展模块,自定义模块

import os
import time
import django
import mymoudles

模块直接不能循环引用,一般会发生找不到模块报错
技术分享图片

 

技术分享图片

 

技术分享图片

 

 



编译文件pyc文件问题

import time
#在导入一个模块的时候会产生一个模块的字节码pyc文件
#如果首次导入模块,会自动生成,会认为是一个通用的功能,
#将通用的功能进行编译,节省启动时间
#pyc文件会加快程序的启动效率,不会影响执行效率。
#如果py文件更改了,pyc文件会感知吗?
#可以,会重新编译

Python Day 18(模块和包)

原文:https://www.cnblogs.com/eailoo/p/9078708.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!