python中import random_[零基础学python]Import 模块
认识模块
对于模块,在前面的一些举例中,已经涉及到了,比如曾经有过:import random (获取随机数模块)。为了能够对模块有一个清晰的了解,首先要看看什么模块,这里选取官方文档中对它的定义:
A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended. Within a module, the module’s name (as a string) is available as the value of the global variable name.
都是洋码子,翻译一下不?不!还是只说要点:
模块就是一个含有python语句的文件
模块名就是文件名(不要扩展名.py)
那么,那个import random的文件在哪里呢?
用曾经讲过的那个法宝:help()函数看看:
>>> help(random)
然后就出现:
NAME
random - Random variable generators.
FILE
/usr/local/lib/python2.7/random.py
MODULE DOCS
http://docs.python.org/library/random
DESCRIPTION
...
这里非常明显的告诉我们,random模块的文件就是: /usr/local/lib/python2.7/random.py(注意:这个地址是我的计算机中的地址,可能跟看官的不一样,特别是如果看官用的是windows,肯定跟我这个不一样了。)
看官这时候可能有疑问了,import是怎么找到那个文件的?类似文件怎么写?不用着急,这些我都会一一道来。
标准库
看了前面的random这个例子,看官可能立刻想到一个问题:是不是已经有人把很多常用的功能都写成模块了?然后使用者只需要用类似方法调用即可。的确是,比如上面显示的,就不是某个程序员在使用的时候自己编写的,而是在安装python的时候,就被安装在了计算机里面。观察那个文件存储地址,就知道了。
我根据上面得到的地址,列出/usr/local/lib/python2.7/里面的文件,这些文件就是类似random的模块,由于是python安装就有的,算是标配吧,给它们一个名字“标准模块库”,简称“标准库”。
这张图列出了很少一部分存在这个目录中的模块文件。
Python的标准库(standard library)是Python的一个组成部分,也是Python为的利器,可以让编程事半功倍。
有一点,请看官特别注意,对于标准库而言,由于内容太多,恐怕是记不住的。也不用可以的去记忆,只需要知道有这么一个东西。如果在编写程序的时候,一定要想到,对于某个东西,是不是会有标准库支持呢?然后就到google或者上面给出的地址上搜索。
举例:
>>> import sys #导入了标准库sys
>>> dir(sys) #如果不到网页上看,用这种方法可以查看这个标准库提供的各种方法(函数)
['__displayhook__', '__doc__', '__egginsert', '__excepthook__', '__name__', '__package__', '__plen', '__stderr__', '__stdin__', '__stdout__', '_clear_type_cache', '_current_frames', '_getframe', '_mercurial', 'api_version', 'argv', 'builtin_module_names', 'byteorder', 'call_tracing', 'callstats', 'copyright', 'displayhook', 'dont_write_bytecode', 'exc_clear', 'exc_info', 'exc_type', 'excepthook', 'exec_prefix', 'executable', 'exit', 'flags', 'float_info', 'float_repr_style', 'getcheckinterval', 'getdefaultencoding', 'getdlopenflags', 'getfilesystemencoding', 'getprofile', 'getrecursionlimit', 'getrefcount', 'getsizeof', 'gettrace', 'hexversion', 'last_traceback', 'last_type', 'last_value', 'long_info', 'maxint', 'maxsize', 'maxunicode', 'meta_path', 'modules', 'path', 'path_hooks', 'path_importer_cache', 'platform', 'prefix', 'ps1', 'ps2', 'py3kwarning', 'setcheckinterval', 'setdlopenflags', 'setprofile', 'setrecursionlimit', 'settrace', 'stderr', 'stdin', 'stdout', 'subversion', 'version', 'version_info', 'warnoptions']
>>> sys.platform #比如这个
'linux2'
>>> sys.version #还有这个
'2.7.6 (default, Nov 13 2013, 19:24:16) \n[GCC 4.6.3]'
>>> help(sys.stdin) #这是查看某个模块方法具体内容的方式
标准库,在编程中经常用到。这里不赘述。只要看官能够知道在哪里找、如何找所需要的标准库即可。
自己编写模块
看官可能比较喜欢“自己动手,丰衣足食”(虽然真的不一定是丰衣足食),在某些必要的时候,还真得自己动手写一些模块。那么怎么编写模块呢?
前面已经交代,模块就是.py文件,所以,只要将某些语句写到一个.py文件中,它就是一个模块了。没有什么太多的秘密。
在某个目录下面建立了一个文件,名称是:mmmm.py,如下图所示,然后编辑这个文件内容。编辑好后保存。
代码是文件内容:
#!/usr/bin/env python
#coding:utf-8
web = "https://qiwsir.github.io"
def my_name(name):
print name
class pythoner:
def __init__(self,lang):
self.lang = lang
def programmer(self):
print "python programmer language is: ",self.lang
图示是文件所在目录,并且在该目录下打开了python的交互模式(我这是在ubuntu下,看官是别的操作系统的化,注意路径,如果遇到问题,可以暂时搁置,看下文)。
从图中可以看出,当前目录中有这个文件:mmmm.py
在交互模式下,仿照对标准库模块的操作方式:
>>> import mmmm
>>> dir(mmmm)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'my_name', 'pythoner', 'web']
>>> mmmm.__doc__ #这个是空的,正是,因为我未曾写过任何文档说明
>>> mmmm.__name__ #名字
'mmmm'
>>> mmmm.__file__ #文件
'mmmm.py'
再看后面的:my_name,pythoner,web,都是我在内容中自己写的。
>>> mmmm.web
'https://qiwsir.github.io'
web是模块mmmm中的一个通过赋值语句建立的变量,在这里,它编程了mmmm的属性,能够通过点号运算访问,其实不仅仅是这类型的赋值,其它通过def,class等,都能做为mmmm模块的属性。
>>> mmmm.my_name
>>> mmmm.pythoner
当然,跟操作标准库一样,一样能够使用help()来看看这些属性的具体内容:
>>> help(mmmm.my_name)
Help on function my_name in module mmmm:
my_name(name)
>>> help(mmmm.pythoner)
Help on class pythoner in module mmmm:
class pythoner
| Methods defined here:
|
| __init__(self, lang)
|
| programmer(self)
怎么调用呢?这样即可:
>>> mmmm.my_name("qiwsir")
qiwsir
当调用模块中的函数的时候,用模块的名称(import mmmm)+点号+函数(注意,函数后面要有括号,如果有参数,括号里面跟参数),即 module_name.funciton(*args)
>>> py = mmmm.pythoner("c++")
>>> py.programmer()
python programmer language is: c++
上面两行,则是演示用绑定的方法调用模块中的类以及类的实例方法。跟以往的相比较,似乎都是在前面多了一个mmmm.
如果感觉这个mmmm比较麻烦,可以用from,具体是这样的:
>>> from mmmm import *
>>> my_name('qiwsir')
qiwsir
>>> web
'https://qiwsir.github.io'
>>> py = pythoner("c++")
>>> py.programmer()
python programmer language is: c++
这次不用总写那么mmmm了。两种方式,哪个更好呢?没有定论。看官在以后的实践中体会,什么时候用什么方式。
上面用from mmmm import ,其中符号,表示将所有的都import进来,用这个方法,也可以只import一部分,如同:
>>> from mmmm import my_name #如果看官前面运行了上述操作,需要关闭交互模式,
#再重启,才能看到下面过程
>>> my_name("qiwsir")
qiwsir
>>> web #没有import这个,所以报错。
Traceback (most recent call last):
File "", line 1, in
NameError: name 'web' is not defined
这就是基本的import模块方法。看官的疑问,还要存着。且听下回分解。
python中import random_[零基础学python]Import 模块相关推荐
- python 智能造句_[零基础学Python]正规地说一句话
小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...
- 零基础学python图文版-杭州零基础学python图文版
杭州零基础学python图文版 来源:教育联展网 编辑:佚名 发布时间:2018-09-19 学习python有什么用? 如果你想学Python,或者你刚开始学习Python,那么你可能会问:&quo ...
- 零基础学python全彩版答案-零基础学Python(全彩版)
商品描述: 本店出售的图书均是正版二手书,有一些笔记划线,基本是六-九品新左右,基本都没有光盘.介意者请提前咨询客服.本店所有书籍,因买家导致退货退款的,发出运费参照不包邮运费模板由买家承担.如果签收 ...
- 0基础学python看什么书-零基础学python编程需要看什么书?
原标题:零基础学python编程需要看什么书? 随着互联网迅速发展,python也呈现出水涨船高的态势.近年来,python在编程语言中一直名列前茅.编程初学者纷纷选择Python作为第一语言.Pyt ...
- 零基础学python看什么书-零基础学python推荐几本python学习的书籍
原标题:零基础学python推荐几本python学习的书籍 无论是否已经学习了一些其他的编程语言,在开始学习Python时,都应该先从Python的基本概念学起,这样在之后的编程实战中就能尽量减少因为 ...
- 编程没基础学python多长时间--零基础学Python,从入门到精通需要多长时间
求一份小甲鱼的<零基础入门学习Python>视频教程 评论 本系列教程面向础的同学,是一个深入浅通俗易懂的Python3视频教程. 适群 完全零基础入门,不需要任何前置知识. 教程概述 前 ...
- 零基础学python大概要多久-零基础学Python要多久
随着Python就业的逐渐火热,我们会看见很多转行零基础学Python编程开发拿上万月薪的新闻,这让很多IT专业甚至非IT专业的同学蠢蠢欲动,想自己也去尝试一下.但是在转行学习Python之前,同学们 ...
- 零基础学python大概要多久-零基础学python大概要多久
Python是目前公认的全球5大流行语言之一,从云计算.大数据到人工智能,Python无处不在,同时Python被誉为神奇的"胶水语言",因为它能够轻易地操作其他程序,轻易地包装使 ...
- python线上课程-零基础学Python量化投资,超值线上课程反复回看
原标题:零基础学Python量化投资,超值线上课程反复回看 超值网络课程 量化投资是一种严谨.系统化的投资方式,相比起传统投资,量化投资风险低回报高,但是它要求投资者使用数据处理分析.计算机编程技术. ...
最新文章
- 物理机linux无法上网,物理机不能访问虚拟机VMNet8中的Linux
- iOS限定UITextField的输入格式
- 旅游社交网站 游范儿
- Problem C: 判断字符串是否为回文
- 简约好看的OneNav PHP导航网kyuan源码
- java语言程序设计第三版电子书百度云_Java语言程序设计(基础篇)(原书第10版) 完整版 中文pdf扫描版[259MB]梁勇...
- php随机生成卡密,PHP随机生成不反复的8位卡号(数字)和卡密(字符串)_后端开发...
- 《百词斩背单词》四级词汇(3486个)-1
- 怎么分割视频,将视频自定义分割成多个小片段的方法
- 第13天 缓冲、转换、对象(序列化)和打印流
- 怎么才能写好技术文档?这是我的全部经验
- Word和Excel齐发力,将多个单元格的文本内容合并到一个单元格
- 红帽Linux重置root密码
- 华云数据出席“云网芯安密屏”讨论会:加快数字化转型 推动湖北信创产业快速发展
- php edd,最新评测揭秘戴森v10motorhedd和fluffy配置有什么区别?哪个好?老司机吐露实情曝光...
- FPGA与PCI-E
- VM安装mac及dmg文件转换iso
- em算法直观_直观地解释了10种图形算法
- 入职字节外包一个月,我还是选择了离职!
- 无线网卡、无线上网卡
热门文章
- python人生的不同阶段_完整的人生有四个阶段,绝大多数人只活过一个阶段
- 手机php网站开发工具,4款好用的网站开发工具推荐
- 腾讯云轻量2核4G/4核8G/8核16G/16核32G服务器配置详解
- ms服务器正在维修中怎么办,华夏军需官任务正在进行服务器维修还有用吗?
- 删除buddypress相关功能
- 余世维:如何培养领袖性格
- 央视:乐视网是创业失败还是涉嫌欺诈?
- Python中calendar,time,datetime模块详情解 -------18
- 设置custom debug keystore
- MQTT(一)C#使用 MQTTnet 快速实现 MQTT 通信(文末有完整Demo下载)