Python之模块导入
import sys #import module (.py)
import functools #名词空间 functools
print(functools) print("-------------os----------------------")
import os.path #dir-->名词空间 os;;os&path是二个py文件
print(os)
from inspect import Signature
print(Signature.__module__) #return 从哪个模块导入 print("-----------alias--------------------")
import os.path as osp #dir-->名词空间osp
print(osp) print('-----------from_import---------------')
from pathlib import Path #dir-->名词空间Path
from pathlib import * #dir-->['Path', 'PosixPath', 'PurePath', 'PurePosixPath', 'PureWindowsPath']
import pathlib as pl #导入的名词和别名是一个对象
from os.path import exists #加载初始化os,os.path ,exists加入本地名词空间并绑定
print(pl.Path,id(pl.Path))
print(Path,id(Path))
'''part1总结
找到from子句中指定的模块,加载并初始化它(注意不是导入)
import子句后先查from子句导入的模块是否具有该名称的属性,如果不是尝试导入该名称的子模块
没有找到抛出importerror异常,这个名称保存到本地名词空间中,如果有as子句,使用as子句后的名称
'''
print("------------costomize----------------")
"""
模块名就是文件名,必须符合标识符的要求,非数字开头的字母数字下划线组合
搜索顺序sys.path
"""
print("------------__name__ == __main__-----------------------")
'''
自己模块的调用执行测试,对于非主模块,测试本模块内的函数类
顶层代码没有封装,主模块使用时候没有问题,但是一旦有了新的主模块,老的主模块变成了被导入模块
由于老模块代码没有封装,一并执行了
'''
print("-------------相对导入-------------------------------------")
'''
相对导入的模块是为了package之间互相医用资源,即不能作为主函数的入口
''' print("----------------__all__-----------------------------------")
'''
#a.py
__all__ = ['x','y','_b','__c']
a = 5
_b = 6
__c = 7
x = 10
y = 20
#b.py
from b import *
import sys
print(sorted(sys.modules.keys()))
print(locals()['x'])
print(locals()['__c'])
__all__是一个列表,元素是字符串,每一个元素都是模块内的变量名,导入时,导入__all__里面的名称
访问a中的变量 就可以通过__all__的方式来访问
'''
print("----------Public 模块属性---------------------")
print(__file__) #当前文件的路径
print(__cached__) #编译后的字节码文件路径
print(__spec__) #显示模块的的规范
print(sys.path) #output 搜索路径顺序
print(__name__) #output __main__
print(__package__) #模块是包同__name__,否则。可以设置为顶级模块的空字符串
print(dir())
print(sys.modules)
Python之模块导入的更多相关文章
- [python]关于在python中模块导入问题追加总结
[背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...
- python random模块导入及用法
random是程序随机数,很多地方用到,验证码,图片上传的图片名称等,下面说说python random模块导入及用法 1,模块导入 import random 2,random用法 random.r ...
- python Calendar 模块导入及用法
Calendar 是python 日历模块,此模块的函数都是日历相关的,例如打印某月的字符月历,星期之类的模块,下面剖析python Calendar 模块导入及用法. 1,python导入日历模块 ...
- python中模块导入问题(已解决)
想在python中导入request包: 无此模块,于是先安装requests包: 但是提示"Requirement already satisfied".在提示的相应目录里,找到 ...
- python自定义模块导入方法,文件夹,包的区别
python模块导入,网上介绍的资料很多,方法也众说纷纭.根据自己的实践,感觉这个方法最简单直接,而且可以与主流的python ide生成的工程是一样的. 规则只有三条 1. 严格区分包和文 ...
- python的模块导入机制
在python中用import或者from...import来导入相应的模块. 模块(Module)其实就是一些函数和类的集合文件,它能实现一些相应的功能,当我们需要使用这些功能的时候,直接把相应的模 ...
- python之模块导入和包
一.何为模块 1.一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.模块目的和函数,对象等一样,是为了代码的复用性而存在的.即一个py程序写了很多功能,也可 ...
- python之模块导入和重载
模块导入和重载 模块导入通过import语句实现,但是在同一次会话中只运行一次. 若想要再次运行文件,调用imp标准库中的reload函数: >>> from imp import ...
- python的模块导入问题
以下内容参考:http://www.xinxingjiaocheng.com/online/item/7/89 1.给模块起个别名 如果一个模块的名字很长很长,就像这样comput_the_value ...
随机推荐
- windows下自动删除过期文件的脚本
windows下自动删除过期文件的脚本 前言: 比如日志文件每天都产生,时间长了就会有很大的一堆垃圾.整理一下 定时删除文件的方法. 正文: Windows: 定时删除tomcat日志和缓存.可以保留 ...
- linux执行python命令后没有反应,不打印日志信息
实际的python执行的软连接是路径是/opt/python2.7/bin/python,而设置的软连接错误如下: 修改该连接,是python指向/opt/python2.7/bin/python, ...
- Git文件常见下标符号说明
Git文件常见下标符号说明 git是一种分布式的版本控制工具. 不用联网也能实现版本控制,很实用. 它是一款现在比较流行的版本控制工具. git的文件上的图标,可以反映出当前文件或者文件夹的状 ...
- 第五天 py if使用
if 的结果缩进 用个Tab 缩进四个空格就好了
- PHP计算显示平均温度、五个最低及最高温度
<?php $month_temp = "78, 60, 62, 68, 71, 68, 73, 85, 66, 64, 76, 63, 81, 76, 73, 68, 72, 73, ...
- php框架中,try,catch不能用的问题(转载)
本文转自:http://blog.csdn.net/sangjinchao/article/details/71436557 最近再用laravel框架发现,try catch用了没有效果,依然不能阻 ...
- js中级小知识5
元素的属性 div.attributes是所有标签属性构成的数据集合 div.classList是所有class名构成的数组集合 在classList的原型链上可以看到add()和remove() 1 ...
- Android adb调试
1.首先是adb 修改 devices/amlogic/p201_iptv/system.prop service.adb.tcp.port=5555 或者直接在盒子串口下修改 system/buil ...
- Redis的学习笔记
一.Redis简介 1.关于关系型数据库和nosql数据库 关系型数据库是基于关系表的数据库,最终会将数据持久化到磁盘上,而nosql数据 库是基于特殊的结构,并将数据存储到内存的数据库.从性 ...
- 数据库的相关语句(where,order by)
select * from EMP t-- t列的别名--返回所有列 select ename || sal as HEHE from emp;--列的合并(使用连接) select concat(e ...