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 ...
随机推荐
- 关于Retrofit网络请求URL中含有可变参数的处理
开题:在此默认各位看官对Retrofit.以及Okhttp已经有过一定的了解及应用,所以今天我们不谈基础入门的东西,今天我们谈在Retrofit请求接口管理类中URL参数含有动态参数的处理方式.一般我 ...
- 删除SQL架构的用户
ALTER AUTHORIZATION ON SCHEMA::db_owner TO db_owner
- 使用DDL触发器同步多个数据库结构
使用DDL触发器同步多个数据库结构 背景:当开发组比较大时,势必会分布到不同的地理位置,若无法在同一个快速网络中工作,就会造成多个开发库并存的局面,这样就需要多个开发库结构的同步,甚至是开发测试数据的 ...
- [BTS] BizTalk EDI character set and separator settings
最近一个项目上遇到需要对EDI头.分隔符.小数点等配置项进行设置. 这里只记录一下结果,原理不记了,多看MSDN. UNB1中的信息在BizTalk中是不会体现在EDI输出文件中的,双方协商好即可. ...
- MySQL成勒索新目标,数据服务基线安全问题迫在眉睫
版权声明:本文由云鼎实验室原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/519598001488335177 来源:腾云阁 ...
- 关于BigDecimal.ROUND_HALF_UP与ROUND_HALF_DOWN
ROUND_HALF_UP: 遇到.5的情况时往上近似,例: 1.5 ->;2ROUND_HALF_DOWN : 遇到.5的情况时往下近似,例: 1.5 ->;1 BigDecimal a ...
- ThinkPHP3.2.3框架下where的组合查询and、or方法
在项目开发中,查询数据时经常用到where条件查询来过滤数据: 有时就需要一个input输入框判断多个字段查询,这时候我们就需要使用组合查询方法来实现: 说明:组合查询的主体还是采用数组方式查询,只是 ...
- Mysql order by与limit混用陷阱
在Mysql中我们常常用order by来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select * from 表名 order by 排序字段 limt M,N. ...
- Spark JDBC To MySQL
mysql jdbc driver下载地址https://dev.mysql.com/downloads/connector/j/ 在spark中使用jdbc1.在 spark-env.sh 文件中加 ...
- Java课程寒假之开发记账本软件(网页版)之三
一.实现基础功能之一(查询)(补) 在上一篇中解释的不够详细,在本篇中补充一下指定日期查询,其实和查询没有什么区别,就是设置select下拉框来对于日期的起始与结束日期,然后就是一个简单的mysql语 ...