python模块——学习笔记

这部分学习的是菜鸟教程
python模块module

#!/usr/bin/python3
# 文件名: using_sys.py
 
import sys
 
print('命令行参数如下:')
for i in sys.argv:
   print(i)
 
print('\n\nPython 路径为:', sys.path, '\n')

sys是python标准库中的模块,sys.argv 是一个包含命令行参数的列表。sys.path包含了一个 Python 解释器自动查找所需模块的路径的列表
使用import导入模块,当解释器遇到import语句时,会在搜索路径中寻找那个模块。路径通过sys.path可以查看,第一个是当前路径,如果import进来不同的模块中有同名函数,后边的会覆盖掉前面的。
直接import module,要使用里面的函数的话要用module.func来调用。
使用from module_name import name可以只导入模块中的一部分函数或者对象。全部导入:from module import *
每个模块有各自独立的符号表,在模块内部为所有的函数当作全局符号表来使用。所以,模块的作者可以放心大胆的在模块内部使用这些全局变量,而不用担心把其他用户的全局变量搞混。
全部导入时,单一下划线(_)开头的名字不在此例。

一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。加了下面的代码就是导入时会运行else后面的。

if __name__ == '__main__':
   print('程序自身在运行')
else:
   print('我来自另一模块')

dir()函数
内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回,dir( module_name)
如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称。包括模块中的变量名称(因为变量也是对象,除了可以导入模块中的函数,还可以导入类,变量等)

包是一种管理 Python 模块命名空间的形式,采用"点模块名称"。比如一个模块的名称是 A.B, 那么他表示一个包 A中的子模块 B 。就好像使用模块的时候,你不用担心不同模块之间的全局变量相互影响一样,采用点模块名称这种形式也不用担心不同库之间的模块重名的情况。
目录只有包含一个叫做 init.py 的文件才会被认作是一个包
因为windows不区分大小写,所以导入语句遵循如下规则:如果包定义文件 init.py 存在一个叫做 all 的列表变量,那么在使用 from package import * 的时候就把这个列表中的所有名字作为包内容导入。包更新了,这个列表变量也要更新。

__all__ = ["echo", "surround", "reverse"]

使用这个包时,只会导入包里面的这三个子模块。
还有from . import XX,from .. import XX,from ..dirtory import XX表示从当前目录导入,从上级目录导入,从上级目录的dictory文件夹导入。

python包管理工具时pip。
当使用anaconda时,Anaconda会把系统Path中的python指向自己自带的Python,并且,Anaconda安装的第三方模块会安装在Anaconda自己的路径下,不影响系统已安装的Python目录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值