乱读天书, 不求甚解
周祎骏的个人云笔记
Toggle navigation
乱读天书, 不求甚解
主页
Linux:系统配置
Linux:用户管理
Linux:优化排错
Linux:进程调度
Linux:文件系统
Linux:网络
Linux:系统服务
Linux:安全
Linux:内核
容器:Docker
容器:containerd
容器编排:Kubernetes
IAC:Terraform
大数据:Hadoop
大数据:Zookeeper
大数据:Hbase
消息队列:rsyslog
消息队列:kafka
数据库:MySQL
数据库:MongoDB
搜索引擎:Elasticsearch
时序数据库:OpenTSDB
网站服务:Nginx
编程:Bash
编程:Perl
编程:Python
编程:C
编程:JAVA
编程:Rust
版本控制:gitlab
知识管理:docusaurus
常用小工具
关于我
标签
python 3.00 模块
2017-01-29 02:46:02
74
0
0
admin
> 这里介绍Python 的模块使用 #引用模块 **用法** import 模块名 > 调用时用 模块名.函数() from 模块名 import 函数名 > 调用时可以直接用 函数() **关于命名空间或者模块的函数以及变量** ``` reload() 重新加载模块 globals() 返回全局变量的命名空间 local() 返回当前命名空间 vars() 返回对象的__dict__ 属性,没有参数的话效果与local()相同 dir() 返回一个模块中定义的变量,函数等,以数组的形式 __all__ 所有外部可用的函数,变量。 __doc__ 文档 __file__ 调用模块/脚本文件所在路径/文件名 __name__ 如果是作为主程序运行,__name__ = '__main__'; 如果是作为模块导入,则__name__ = 模块的名字 ``` **Python 寻找模块的方式** 1. 当前目录 2. 环境变量PYTHONPATH 3. 默认路径 (比如/usr/local/lib/python/) *** #自定义模块 ##例子一:一个文件 **被import 脚本** ``` [root@hadoop1 python]# ls abcd/ lala.py [root@hadoop1 python]# cat abcd/lala.py #!/usr/bin/python print "import me" import sys,os basename = os.path.abspath(os.path.dirname(__file__)) print "basename:"+basename a=1 def lala_f(): print "lala" ``` **import 脚本** ``` [root@hadoop1 python]# cat main.py #!/usr/bin/python import sys,os basename = os.path.abspath(os.path.dirname(__file__)) print "basename:"+basename sys.path.append(basename+"/abcd/") import lala lala.lala_f() print lala.a print "import module again:" import lala print "reload the module:" reload(lala) print "show all function/value:" print dir(lala) ``` **效果** ``` [root@hadoop1 python]# ./main.py basename:/root/python import me basename:/root/python/abcd lala 1 import module again: reload the module: import me basename:/root/python/abcd show all function/value: ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'a', 'basename', 'lala_f', 'os', 'sys'] ``` ##例子二:一个包 **包的结构** ``` [root@hadoop1 python]# ls mod_leo/ __init__.py lala.py wawa.py ``` **包的代码** ``` [root@hadoop1 python]# cat mod_leo/__init__.py #!/usr/bin/python from lala import * from wawa import * [root@hadoop1 python]# cat mod_leo/lala.py #!/usr/bin/python def lala_f(): print "lala" [root@hadoop1 python]# cat mod_leo/wawa.py #!/usr/bin/python def wawa_f(): print "wawa" [root@hadoop1 python]# ``` **调用包的代码** ``` [root@hadoop1 python]# cat main.py #!/usr/bin/python import mod_leo mod_leo.wawa_f() mod_leo.lala_f() ``` **效果** ``` [root@hadoop1 python]# ./main.py wawa lala ```
上一篇:
python 2.04 迭代器和生成器
下一篇:
python 3.01 OS 模块
文档导航