写在前面:
此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出。欢迎各位前来交流。(部分材料来源网络,若有侵权,立即删除)
传送门:

day01基础知识
day02知识分类
day03运算符
day04数字与字符串
day05列表
day06元组与字典
day07条件与循环
day08函数概念
day09数据结构
day10模块介绍
day11文件操作
day12编程学习
day13编程学习
day14编程学习
day15编程学习
day16编程学习
day17编程学习
day18编程学习

Python学习:day10

  • Python模块
    • import语句
    • from ... import语句
    • from ... import*语句
    • 深入模块
    • __name__属性
    • dir()函数

Python模块

  • Python 提供了一个办法,把定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这种文件被称为模块。
  • 模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。

具体实例:

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

执行结果为:

  • import sys 引入python标准库中的sys.py模块;这是引入某一模块的方法。
  • sys.argv 是一个包含命令行参数的列表。
  • sys.path 包含一个Python解释器自动查找所需模块的路径的列表。

import语句

  • 想使用 Python 源文件,只需在另一个源文件里执行 import 语句;
  • import module1[, module2[,… moduleN]
  • 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。
  • 搜索路径是一个解释器会先进行搜索的所有目录的列表。如想要导入模块 support,需要把命令放在脚本的顶端:

support.py文件代码

support.py 文件代码
#!/usr/bin/python3
# Filename: support.pydef print_func( par ):print ("Hello : ", par)return
  • test.py 引入 support 模块:
#!/usr/bin/python3
# Filename: test.py# 导入模块
import support# 现在可以调用模块里包含的函数了
support.print_func("Runoob")

输出结果为:

  • 无论执行多少次import。一个模块只会被导入一次。

from … import语句

  • ython 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中。

from … import*语句

  • from modname import *
  • 该方法可以简单的导入一个模块中的所有项目,然而这种声明不该被过多的使用。

深入模块

  • 模块除了方法定义,还可以包括可执行的代码。这些代码一般用来初始化这个模块。这些代码只有在第一次被导入时才会被执行。
  • 模块是可以导入其他模块的。在一个模块(或者脚本,或者其他地方)的最前面使用 import 来导入一个模块,当然这只是一个惯例,而不是强制的。被导入的模块的名称将被放入当前操作的模块的符号表中。
  • 还可以使用 import 直接把模块内(函数,变量的)名称导入到当前操作模块。
>>> from fibo import fib, fib2
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377
  • 这种导入的方法不会把被导入的模块的名称放在当前的字符表中(所以在这个例子里面,fibo 这个名称是没有定义的)。
  • 这还有一种方法,可以一次性的把模块中的所有(函数,变量)名称都导入到当前模块的字符表:
>>> from fibo import *
>>> fib(500)
1 1 2 3 5 8 13 21 34 55 89 144 233 377

__name__属性

  • 一个模块被另一个程序第一次引入时,其主程序将运行。如果我们想在模块被引入时,模块中的某一程序块不执行,我们可以用__name__属性来使该程序块仅在该模块自身运行时执行。
#!/usr/bin/python3
# Filename: using_name.pyif __name__ == '__main__':print('程序自身在运行')
else:print('我来自另一模块')

运行输出如下:


  • 每个模块都有一个__name__属性,当其值是’main’时,表明该模块自身在运行,否则是被引入。
  • namemain 底下是双下划线

dir()函数

  • 内置的函数 dir() 可以找到模块内定义的所有名称。以一个字符串列表的形式返回:
>>> import fibo, sys
>>> dir(fibo)
['__name__', 'fib', 'fib2']
>>> dir(sys)
['__displayhook__', '__doc__', '__excepthook__', '__loader__', '__name__','__package__', '__stderr__', '__stdin__', '__stdout__','_clear_type_cache', '_current_frames', '_debugmallocstats', '_getframe','_home', '_mercurial', '_xoptions', 'abiflags', 'api_version', 'argv','base_exec_prefix', 'base_prefix', 'builtin_module_names', 'byteorder','call_tracing', 'callstats', 'copyright', 'displayhook','dont_write_bytecode', 'exc_info', 'excepthook', 'exec_prefix','executable', 'exit', 'flags', 'float_info', 'float_repr_style','getcheckinterval', 'getdefaultencoding', 'getdlopenflags','getfilesystemencoding', 'getobjects', 'getprofile', 'getrecursionlimit','getrefcount', 'getsizeof', 'getswitchinterval', 'gettotalrefcount','gettrace', 'hash_info', 'hexversion', 'implementation', 'int_info','intern', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path','path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1','setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit','setswitchinterval', 'settrace', 'stderr', 'stdin', 'stdout','thread_info', 'version', 'version_info', 'warnoptions']
  • 如果没有给定参数,那么 dir() 函数会罗列出当前定义的所有名称:
>>> a = [1, 2, 3, 4, 5]
>>> import fibo
>>> fib = fibo.fib
>>> dir() # 得到一个当前模块中定义的属性列表
['__builtins__', '__name__', 'a', 'fib', 'fibo', 'sys']
>>> a = 5 # 建立一个新的变量 'a'
>>> dir()
['__builtins__', '__doc__', '__name__', 'a', 'sys']
>>>
>>> del a # 删除变量名a
>>>
>>> dir()
['__builtins__', '__doc__', '__name__', 'sys']
>>>

end

坚持10天了,希望明天能继续坚持下去,加油。

Python菜鸟入门:day10模块介绍相关推荐

  1. python菜鸟工具-终于清楚python菜鸟入门教程

    Python是一款功能强大的脚本语言,具有丰富和强大的库,重要的是,它还具有很强的可读性,易用易学,非常适合编程初学者入门.以下是小编为你整理的python菜鸟入门教程 环境配置:下载Python并安 ...

  2. Python菜鸟入门:day12编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  3. Python菜鸟入门:day07条件循环

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  4. Python菜鸟入门:day02知识分类

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  5. Python菜鸟入门:day19编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  6. Python菜鸟入门:day18编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  7. Python菜鸟入门:day17编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  8. Python菜鸟入门:day16编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

  9. Python菜鸟入门:day15编程学习

    写在前面: 此博客仅用于记录个人学习进度,学识浅薄,若有错误观点欢迎评论区指出.欢迎各位前来交流.(部分材料来源网络,若有侵权,立即删除) 传送门: day01基础知识 day02知识分类 day03 ...

最新文章

  1. 二流四流神经网路(模型融合矩阵乘法理论实践)
  2. ibatis中isEquals、isNotEmpty的用法
  3. java 定义一组常量用什么最好_Java语言中定义常量注意事项解析
  4. 用户密码和cookie,session、token还有AKSK
  5. 03 HttpServletRequest_HttpServletResponse
  6. python2exe下载_py2exe下载 0.6.9.win32-py2.7-python转exe工具-pc6下载站
  7. HDU 2063 过山车【二分图最大匹配】
  8. java数组按照大小排列_Java怎么让数组中元素按照牌值从小到大的顺序排列
  9. c语言mergesort 参数,归并排序C语言兑现MergeSort
  10. 一步步编写操作系统 09 写个mbr
  11. C++编程语言中类对象的赋值与复制介绍(三)
  12. 立创EDA库导入AD18的教程
  13. 微信小程序上线问题与经验总结
  14. 计算机英语2000带英标
  15. android Glide 去掉绿色背景(图片变绿解决方法)
  16. Hbuilder如何替换选中代码快捷键
  17. 北京住房公积金联名卡政策问答
  18. Django 基础(6)-路由Routers-SimpleRouter-DefaultRouter、 action装饰器、URL路径参数
  19. 并发编程面试宝典(内含69道常问面试题及答案解析)
  20. 宇视摄像头尾线防水处理

热门文章

  1. #C语言#重定义问题
  2. Python Tkinter之variable用法
  3. ROS indigo在Ubuntu上的安装教程
  4. Flex(try-catch-finally)机制
  5. 敏捷开发一千零一问系列之九:总体架构什么时机进行?(上)
  6. spring整合mybatis的坑
  7. centos7 update network time
  8. 萌新关于C#委托一点见解
  9. Docker下部署wordpress
  10. tshark (wireshark)笔记