范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

那些Python中的模块

  简介
  Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了。这个时候我们需要将python程序保存在一个文件里。通常这个文件是以.py结尾的。
  对于大型的应用程序来说,一个文件可能是不够的,这个时候我们需要在文件中引用其他的文件,这样文件就叫做模块。
  模块是一个包含Python定义和语句的文件。文件名就是模块名后跟文件后缀 .py 。在模块内部,模块名可以通过全局变量 __name__ 获得。模块基础
  还是之前的斐波拉赫数列的例子,我们在fibo.py文件中存放了函数的实现: def fib(n):    # write Fibonacci series up to n     a, b = 0, 1     while a < n:         print(a, end=" ")         a, b = b, a+b     print()  复制代码
  编写完毕之后,我们可以在Python的解释环境中导入它:>>> import fibo 复制代码
  然后直接使用即可:>>> fibo.fib(1000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 复制代码
  常用的函数,我们可以将其赋值给一个变量:>>> fib = fibo.fib >>> fib(1000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 复制代码
  或者,我们在导入的时候,直接给这个模块起个名字:>>> import fibo as fib >>> fib.fib(500) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 复制代码
  或者导入模块中的函数:>>> from fibo import fib as fibonacci >>> fibonacci(500) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 复制代码
  每个模块都有它自己的私有符号表,该表用作模块中定义的所有函数的全局符号表。因此,模块的作者可以在模块内使用全局变量,而不必担心与用户的全局变量发生意外冲突。执行模块
  前面我们提到了可以使用import来导入一个模块,并且 __name__ 中保存的是模块的名字。
  和java中的main方法一样,如果我们想要在模块中进行一些测试工作,有没有类似java中main方法的写法呢?
  先看一个例子:if __name__ == "__main__":     import sys     fib(int(sys.argv[1])) 复制代码
  在模块中,我们需要进行一个判断 __name__ 是不是被赋值为 "__main__"。
  我们这样来执行这个模块:python fibo.py  复制代码
  以脚本执行的情况下,模块的 __name__ 属性会被赋值为 __main__ , 这也是例子中为什么要这样写的原因。
  看下执行效果:$ python fibo.py 50 0 1 1 2 3 5 8 13 21 34 复制代码
  如果是以模块导入的话,那么将不会被执行:>>> import fibo >>> 复制代码模块搜索路径
  使用import导入模块的时候,解释器首先会去找该名字的内置模块,如果没找到的话,解释器会从 sys.path变量给出的目录列表里寻找。
  sys.path的初始目录包括:当前目录PYTHONPATH 指定的目录安装的默认值dir
  要想查看模块中定义的内容,可以使用dir函数。>>> a = [1, 2, 3, 4, 5] >>> import fibo >>> fib = fibo.fib >>> dir() ["__builtins__", "__name__", "a", "fib", "fibo", "sys"] 复制代码
  上面的例子列出了当前模块中定义的内容,包括变量,模块,函数等。
  注意, dir() 不会列出内置函数和变量的名称。如果你想要这些,它们的定义是在标准模块 builtins 中。
  我们可以给dir加上参数,来获取特定模块的内容:>>> import builtins >>> dir(builtins)   ["ArithmeticError", "AssertionError", "AttributeError", "BaseException",  "BlockingIOError", "BrokenPipeError", "BufferError", "BytesWarning",  "ChildProcessError", "ConnectionAbortedError", "ConnectionError",  "ConnectionRefusedError", "ConnectionResetError", "DeprecationWarning",  "EOFError", "Ellipsis", "EnvironmentError", "Exception", "False",  "FileExistsError", "FileNotFoundError", "FloatingPointError",  "FutureWarning", "GeneratorExit", "IOError", "ImportError",  "ImportWarning", "IndentationError", "IndexError", "InterruptedError",  "IsADirectoryError", "KeyError", "KeyboardInterrupt", "LookupError",  "MemoryError", "NameError", "None", "NotADirectoryError", "NotImplemented",  "NotImplementedError", "OSError", "OverflowError",  "PendingDeprecationWarning", "PermissionError", "ProcessLookupError",  "ReferenceError", "ResourceWarning", "RuntimeError", "RuntimeWarning",  "StopIteration", "SyntaxError", "SyntaxWarning", "SystemError",  "SystemExit", "TabError", "TimeoutError", "True", "TypeError",  "UnboundLocalError", "UnicodeDecodeError", "UnicodeEncodeError",  "UnicodeError", "UnicodeTranslateError", "UnicodeWarning", "UserWarning",  "ValueError", "Warning", "ZeroDivisionError", "_", "__build_class__",  "__debug__", "__doc__", "__import__", "__name__", "__package__", "abs",  "all", "any", "ascii", "bin", "bool", "bytearray", "bytes", "callable",  "chr", "classmethod", "compile", "complex", "copyright", "credits",  "delattr", "dict", "dir", "pmod", "enumerate", "eval", "exec", "exit",  "filter", "float", "format", "frozenset", "getattr", "globals", "hasattr",  "hash", "help", "hex", "id", "input", "int", "isinstance", "issubclass",  "iter", "len", "license", "list", "locals", "map", "max", "memoryview",  "min", "next", "object", "oct", "open", "ord", "pow", "print", "property",  "quit", "range", "repr", "reversed", "round", "set", "setattr", "slice",  "sorted", "staticmethod", "str", "sum", "super", "tuple", "type", "vars",  "zip"] 复制代码包
  java中有package的概念,用来隔离程序代码。同样的在Python中也有包。
  我们看一个Python中包的例子:sound/                          Top-level package       __init__.py               Initialize the sound package       formats/                  Subpackage for file format conversions               __init__.py               wavread.py               wavwrite.py               aiffread.py               aiffwrite.py               auread.py               auwrite.py               ...       effects/                  Subpackage for sound effects               __init__.py               echo.py               surround.py               reverse.py               ...       filters/                  Subpackage for filters               __init__.py               equalizer.py               vocoder.py               karaoke.py               ... 复制代码
  上面我们定义了4个包,分别是sound,sound.formats, sound.effects, sound.filters。
  注意,如果是包的话,里面一定要包含 __init__.py 文件。
  __init__.py 可以是一个空文件,也可以执行包的初始化代码或设置 __all__ 变量。
  当导入的时候, python就会在 sys.path 路径中搜索该包。
  包的导入有很多种方式,我们可以导入单个模块:import sound.effects.echo 复制代码
  但是这样导入之后,使用的时候必须加载全名:sound.effects.echo.echofilter(input, output, delay=0.7, atten=4) 复制代码
  如果不想加载全名,可以这样导入:from sound.effects import echo 复制代码
  那么就可以这样使用了:echo.echofilter(input, output, delay=0.7, atten=4) 复制代码
  还可以直接导入模块中的方法:from sound.effects.echo import echofilter 复制代码
  然后这样使用:echofilter(input, output, delay=0.7, atten=4) 复制代码
  如果一个包里面的子包比较多,我们可能会希望使用 * 来一次性导入: from sound.effects import *  复制代码
  那么如何去控制到底会导入effects的哪一个子包呢?
  我们可以在 __init__.py 中定义一个名叫 __all__ 的列表,在这个列表中列出将要导出的子包名,如下所示:__all__ = ["echo", "surround", "reverse"] 复制代码
  这样from sound.effects import * 将导入 sound 包的三个命名子模块。
  如果没有定义 __all__,from sound.effects import * 语句 不会 从包 sound.effects 中导入所有子模块到当前命名空间;它只会导入包 sound.effects。包的相对路径
  Import 可以指定相对路径,我们使用 . 来表示当前包, 使用 .. 来表示父包。
  如下所示:from . import echo from .. import formats from ..filters import equalizer

资深米粉分享房屋全套小米生态是什么体验?好用的小米产品推荐PS这里是知科技,只分享实用知识!一秒关注我吧!软件网站数码推荐数码评测实用科技知识,每日不停更新!全屋米家生态,一句话真香。为了避免被人说是托,先上米家app截图!1智能门锁智能中国联通刘烈宏集中加速创新技术应用,数字经济赋能产业升级创头条消息,12月6日,2021年中国联通合作伙伴大会成功召开。会上,中国联通董事长刘烈宏指出,中国联通将全面发力数字经济主航道,将大联接大计算大数据大应用大安全作为主责主业,实现多家锂电产业链厂商加码布局电池回收业务本报记者金一丹宁德时代宣布,邦普一体化新能源产业项目于12月4日正式开工,对退役电池回收再利用以实现降本。近期,华友钴业中伟股份等多家锂电产业链厂商亦表示布局动力电池回收业务。机构大公司早报张勇称要变革阿里的生产关系小红书回应推送未成年人身体隐私(整理胡毓靖)今天是12月6日星期一,过去一个周末的大公司新闻包括阿里宣布升级多元化治理体系,张勇要变革阿里巴巴的生产关系小红书被曝推送未成年人身体隐私,将启动新一轮未成年治理专项自拍时镜头对准私密部位泄露未成年人身体隐私,小红书不仅是审核失职小红书。图ICphoto据央视网报道,有小学生家长在小红书App上搜索亲子乐园时发现,一些明显泄露未成年人身体隐私的视频被推送过来。记者发现,视频拍摄者都是未成年人本人,拿手机自拍为什么感觉现在的华为产品那么贵?我不是说华为品质差,我只是觉得其它品牌的品质也提升起来了,而华为并没有太大改变,但售价却提升很多,我全家一直都用华为,但前段时间太太换手机时,考虑再三,还是选了苹果,华为实在太贵了温感小气泡去黑头什么感觉?一个字,绝环境污染空气脏,杂质吸附脸好脏。日常清洁不彻底,是否开始心慌慌?黑头粉刺毛孔堵,皮肤状态好忧伤!正愁不知怎么办,inface现身帮我忙!如上文所言,外界因素加上自身肤质问题,肌肤问微信一口气又更新了10个功能最近,看着手机里这个小而美App的体积越来越大我这个小内存手机用户也是越来越担忧你说你,想要的新功能一个不给,花里胡哨的功能倒是疯狂安排这不,就在前几天,咱们的小而美又有新更新了看36氪独家详解小红书人员优化所有部门均涉及,此前一直在持续扩招作者窦轩李小霞编辑乔芊杨轩36氪从多个独立信源处获悉,近日小红书多个业务部门正在进行人员缩减,核心业务线社区人员规模变动较大,产品技术平台等部门也都有波及。从本周一开始,小红书HR苹果这次栽了,苹果因不送充电器被巴西法院判决赔偿每人约七千元近日苹果手机在巴西戈亚尼亚市因违反了消费法,被法院判决必须赔偿一民没有获得充电的苹果手机买家。苹果CEO库克此次,在法庭上苹果手机公司被裁定非法搭配销售罪,虽然苹果公司在法庭上称不面对滴滴推出的一些政策,为什么有些司机直呼跑不动了?首先是抽成不透明,尤其是拼车单顺路单抽成太高,橙意单让B级车跑快车单不挣钱还增加投诉率,对司机管理太严苛,没有一点人性,对乘客百般伺候,一副奴才相,使司乘关系极度紧张,本身就是从a
数据结构是如何装入CPU寄存器的?我们在之前很多文章的讲解中涉及了CPU与寄存器,然后有同学问了这样一个问题既然CPU内部的寄存器数量有限,容量有限,那么我们使用的庞大的数据结构是怎样装入寄存器供CPU计算的呢?这网购也要学会避坑,这4类商品最好实体店买,要不会吃亏如今,网购已经成为人们的日常生活,也是人们消费购物的重要渠道之一。全球商品跨越空间限制飞入每个家庭。中国电子商务全球最大电子商务市场的趋势和前景报告显示,2022年中国电子商务市场顶级富豪一个比一个感情丰富,马斯克刘强东在他们面前还是孩子今年最火的富豪无疑是SpaceX公司CEO兼CTO特斯拉公司CEO太阳城公司董事会主席马斯克,2022年全球富豪榜以1。29万亿元人民币连续成为世界首富。在俄罗斯大战乌克兰中,马斯海底捞到底怎么啦对于海底捞目前的市场和他的形势,我从离开海底捞到现在依然依然是看好他的发展,虽然他目前的股价对比最高值暴跌了80,但是这是很正常的。大家可以看看今年大多数中概股的情况,都是差不多的微信也能查重名了,看看你的同名多吗?微信也能查重名了,看看你的同名多吗?不知道小时候辉友们有没有在电视上看过查同名的广告?小辉上学时印象最深的就是电视上经常有编辑短信到XXX可以设置彩铃或者查询全国有多少人和你同名的35岁转行是不是太晚了?你好,我是全职自媒体人,很荣幸回答你的问题,以下观点和建议,供参考这山望着那山高,这是人生心理常态。工作是否开心是自我衡量的感受。同事领导的相处和处理方式,不符合自己的三观,就会觉靓眼又好用Poby星空电动牙刷大家好,我是波导终结者。感谢Poby电动牙刷的评测机会,今天跟大家分享的是Poby星空电动牙刷。众所周知,牙疼不是病,疼起来却要人命,现在的人越来越注重口腔和牙齿的健康养护,我之前延续百元优秀品质,全新配色定位电竞,QCYG1真无线机甲款体验之前分享过一款QCYG1真无线电竞游戏耳机的体验,在100多元这个档位里,各方面的表现都非常出色,性价比相当高,不过就是配色比较单调,最近新推出了机甲款,红蓝撞色设计,这回有点专业俄议员俄将实行每周四天工作制据俄新社消息,俄国家杜马(议会下院)劳动社会政策和老兵事务委员会主席雅罗斯拉夫尼洛夫说,俄将在不久的未来实行每周四天工作制。尼洛夫表示,新冠疫情期间的事实表明,在技术不断完善的情况(奋进新征程建功新时代我们的新时代)这才是天团!那些与量子纠缠的青年科学家新华社合肥5月3日电题这才是天团!那些与量子纠缠的青年科学家新华社记者戴威曹嘉玥1900年,德国。42岁的普朗克首次提出量子论,曾经坚不可摧的牛顿力学大厦,被一束来自微观世界的光探手机存储空间多少才够用?1hr1T手机都出现好久了,有人还在爽用着64G的对于手机占用比来说不要低于10,至于手机存储空间要留多少才能保证性能这肯定是多多益善。但手机存储空间的作用本来就是用来存储应用软件