首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础13-模块的使用

fib.py python fib.py 50 #在命令行 模块的搜索路径 模块搜索路径的优先级: 1.内存中已经加载过的 2.内置模块 3.sys.path //第一个值是当前执行文件所在的文件夹...,可以使用sys.modules查看 2、如果没有,解释器则会查找同名的内建模块 3、如果还没有找到就从sys.path给出的目录列表中依次寻找spam.py文件。...#在初始化后,python程序可以修改sys.path,路径放到前面的优先于标准库被加载。...官网解释 搜索路径: 当一个命名为spam的模块被导入时 解释器首先会从内建模块中寻找该名字 找不到,则去sys.path中找该名字 sys.path从以下位置初始化 1 执行文件所在的当前目录...,包含软连接的目录不会被添加到模块的搜索路径中 在初始化后,我们也可以在python程序中修改sys.path,执行文件所在的路径默认是sys.path的第一个目录,在所有标准库路径的前面。

38230

Python-模块与包的管理

一.模块 1.模块实质上就是一个以.py结尾的文件,可以被其他py文件调用; 2.使用模块 - 大大提高了代码的可维护性; - 编写代码不必从零开始。...当一个模块编写完毕,就可以被其他地方引用; 3.导入模块时,会去python的默认搜索路径中寻找; - python的默认搜索路径sys.path, - 添加自定义的搜索路径时,sys.path是一个列表...在桌面上写一个名为happy.py的模块,由于没有/home/kiosk/Desktop的路径,所以无法加载模块 ? ? 添加路径后,可以加载自定义模块 ?...注:如有两个相同命名的模块,先执行路径在前面的,也可以调整路径的顺序 ? ?...    from 模块名 import 函数名     from  模块名 import 函数名 as 函数别名     import 模块名 as 函数别名 二.包 - 导入一个包的实质是运行包里面的

56320
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    网上课程管理系统---大致框架(伪代码)

    一、复习继承 继承:什么是什么的关系 单继承:   先抽象再继承,几个代码之间相同的代码抽象出来,成为父类   子类自己没有的名字,就可以使用父类的方法和属性   如果子类自己有,一定先用自己的   在类中使用...查看讲的班级信息;查看带的学生信息 (2)学生:选择班级;查看自己的信息 (3)管理员:创建讲师账号;创建学生账号;创建课程;创建班级;给讲师分配课程;给讲师分配班级 3、退出,结束 注意:应当使用软件规范去写(在前面的...修改sys.path,把学校课程管理系统这个路径写到sys.path列表中 # 之后所有的模块导入,都是基于学校课程管理系统 # 比如调用core里面的main方法 from core import..., :return: ''' 除了main函数外,还有有关的几个身份类也放在core文件中 管理员类:根据前面的系统大概要求可以知道管理员类大致拥有的一些属性 class Manager..., # 这里也可以先不要加course,可以放在后面先将老师实例化 再添加课程 t = Teacher('blue') t.course = c # 组合:对象的属性=对象 先给老师实例化后

    1.3K20

    python基础教程:模块高级技巧

    这里,就涉及到了Python模块的搜索路径。 Python模块的搜索路径 当一个名为mylib的模块被导入时,解释器首先搜索内置模块是不是有该名字的模块。...sys.path的初始化按以下几个路径的顺序: (1)包含输入脚本的目录,如果没有输入脚本则是当前目录; (2)环境变量PYTHONPATH(一个目录名称的列表); (3)Python库的安装目录...这样就会导致你写的模块与系统模块重名时,它import的是系统模块而不是你写的模块,而前面两种方式就是导入你写的模块而非系统模块。这一点在使用IPython时要格外注意。...注意你可以在程序中修改sys.path。sys.path是一个Python的列表结构,我们可以像修改列表那样修改它,增加、删除、修改路径顺序。...比如,可以通过sys.path.insert(0, 'my-module-path')来把我们自己写的模块的路径放到搜索路径的最前面,优先搜索自己的模块。

    80510

    python模块导入细节

    在任何一个python程序启动时,都会将模块的搜索路径收集到sys模块的path属性中(sys.path)。...当python需要搜索模块文件在何处时,首先搜索内置模块,如果不是内置模块,则搜索sys.path中的路径列表,搜索时会从该属性列出的路径中按照从前向后的顺序进行搜索,并且只要找到就立即停止搜索该模块文件...再去输出sys.path,将可以看到这两个路径已经放进了搜索列表中。...例如,在import导入sys模块之后,可以修改sys.path,向这个列表中添加其它搜索路径,这样之后导入其它模块的时候,也会搜索该路径。...以前面的a.py中导入模块文件b.py为例: import b import导入模块时,搜索到模块文件b.py后: 1.首先在内存中为每个待导入的模块构建module类的实例:模块对象。

    1.9K40

    python高级-模块(14)

    这四个组建组合起来就变成了sys.path了, 当python import模块的时候,就通过sys.path里面的目录列表下面去查找。...sys.path是python的搜索模块的路径集,是一个list。...import sys #因为sys.path是一个列表,所以可以在后面追加一个自定的模块路径 sys.path.append("/home/Se7eN_HOU") #通过insert可以将路径插到前面...sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。 sys.platform: 获取当前系统平台。...运行结果: hello 90 程序首先打印hello,在执行exit(90),抛异常把90传给values,values在传进函数中执行,打印90程序退出。后面的”come?”

    71820

    Python黑帽编程2.6 模块

    sys模块包含了与Python解释器和它的环境有关的函数。 当Python执行import sys语句的时候,它在sys.path变量中所列目录中寻找sys.py模块。...sys.argv变量是一个字符串的列表,包含了命令行参数的列表。 sys.path包含输入模块的目录名列表。...2.6.3 __NAME__ 每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。前面说过,当一个模块被第一次导入的时候,这个模块的主块将被运行。...我们接下来将看看如何在我们别的Python程序中使用这个模块。 这个模块应该被放置在我们导入它的程序的同一个目录中,或者在sys.path所列目录之一。 测试代码如下: #!...当为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。 先看下面的代码: #!

    982100

    python导入父级别目录

    二、python中的模块搜索路径 在一个模块被导入时,PVM会在后台从一系列路径中搜索该模块,其搜索过程如下: 1、在当前目录下搜索该模块; 2、在环境变量PYTHONPATH中指定的路径列表中依次搜索...; 3、在python安装路径中搜索 事实上,PVM通过变量sys.path中包含的路径来搜索,这个变量里面包含的路径列表就是上面提到的这些路径信息,我们可以打印看下sys.pth都包含些哪些路径:...import sys print(sys.path) [”, ‘C:\Windows\system32\python27.zip’, ‘D:\tools\Python27...模块的搜索路径中,然后我们动态的增加这个路径到搜索模块中,再执行导入: sys.path.append(“E:\”) print(sys.path) [”, ‘C:\Windows...module_4 Hello world 4 首先是在sys.path中增加了E盘根目录作为搜索路径,随后的打印中可以看到确实已经被添加到sys.path

    3.8K10

    Python类、模块、包的区别

    如果脚本文件是作为主程序调用,其值就设为__main__,如果是作为模块被其他文件导入,它的值就是其文件名。 每个模块都有自己的私有符号表,所有定义在模块里面的函数把它当做全局符号表使用。...: 包含脚本当前的路径,当前路径 PYTHONPATH 默认安装路径 sys.path初始化完成之后可以更改 编译过的Python文件: .pyc文件 built-in 模块 上面的例子中,当...这里你就需要通过某种途径,如sys.path,来告知Python了。sys.path返回的是模块搜索列表,通过前后的输出对比和代码,应能理悟到如何增加新路径的方法了吧。...这些语句只在模块第一次被导入时被执行。这非常重要,有些人以为这些语句会多次导入多次执行,其实不然。...,它包含的模块名字的列表将作为被导入的模块列表。

    1.2K20

    【Python】对绝对导入与相对导入的理解的补充

    上面的两种语法,建议也只使用第一种。 当然,前面一篇文章已经说过了,使用相对导入是有缺陷的,没法直接运行该文件进行测试。 2....前面的代码已经写好,我们直接运行:python test.py,会得到输出: __name__: test_lib.lib2 in ..../dist-packages', '/usr/lib/python3/dist-packages' ] 可以看到sys.path在三个脚本中的输出结果都是一样的,默认加入到path路径的只有直接被运行的文件所在的目录...import func2,如果把lib2前面的点号去掉,则会报错,因为在sys.path的路径中找不到lib2这个模块。...另一种解决方案是,在import之前将当前路径加入到sys.path中: import sys from os.path import abspath, dirname # 把当前文件所在的目录加入到sys.path

    1.3K30

    【语法05】Python模块

    参考链接: Python中的numpy.fv ''' 在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。...2、sys.argv 是一个包含命令行参数的列表。 3、sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。...搜索路径被存储在sys模块中的path变量,做一个简单的实验,在交互式解释器中,输入以下代码: ''' import sys for i in sys.path:     print(i) ''' sys.path...了解了搜索路径的概念,就可以在脚本中修改sys.path来引入一些不在搜索路径中的模块。...在一个模块(或者脚本,或者其他地方)的最前面使用 import 来导入一个模块,当然这只是一个惯例,而不是强制的。被导入的模块的名称将被放入当前操作的模块的符号表中。

    40020

    1.自定义模块

    模块的搜索路径 当你引用一个模块时,不见得每次都可以import到: ? 上面的示例可以得知,引用模块也是按照一定规则进行引用的。 ​...Python中引用模块是按照一定的规则以及顺序去寻找的,这个查询顺序为:先从内存中已经加载的模块进行寻找找不到再从内置模块中寻找,内置模块如果也没有,最后去sys.path中路径包含的模块中寻找。...内存中已经加载的模块->内置模块->sys.path路径中包含的模块 模块的查找顺序 在第一次导入某个模块时(比如tbjx),会先检查该模块是否已经被加载到内存中(当前执行文件的名称空间对应的内存),如果有则直接引用...(ps:python解释器在启动时会自动加载一些模块到内存中,可以使用sys.modules查看) 如果没有,解释器则会查找同名的内置模块 如果还没有找到就从sys.path给出的目录列表中依次寻找tbjx.py...虽然每次都说,但是仍然会有人不停的犯错 #在初始化后,python程序可以修改sys.path,路径放到前面的优先于标准库被加载。

    51430

    Python学习笔记整理(十三)Pyth

    reload:在不中止Python程序的情况下,提供了一个重新载入模块文件代码的方法。 在一个模块文件的顶层定义的所有变量名都成为了被导入的模块对象的属性。...这四个组建组合起来就变成了sys.path了, >>> import sys >>> sys.path 导入时,Python会自动由左到右搜索这个列表中每个目录。...dir1在容器目录dir0中,dir0这个目录可以在Python模块搜索路径中找到。...Python程序本身是修改sys.path的内置列表。...作为一条原则,如果需要把立即执行的代码和def一起混用,就要把def放在文件前面,把顶层代码放在后面。这样的话,你的函数在使用的代码运行时,可以保证他们都已定义并赋值过了。

    1.7K50

    Python3 模块

    2、sys.argv 是一个包含命令行参数的列表。 3、sys.path 包含了一个 Python 解释器自动查找所需模块的路径的列表。...搜索路径是在Python编译或安装的时候确定的,安装新的库应该也会修改。 搜索路径被存储在sys模块中的path变量 这看起来很像环境变量,事实上,也可以通过定义环境变量的方式来确定搜索路径。...可以做一个简单的实验来查看Python的搜索路径,代码示例: import sys print(sys.path) # 将目录列表打印出来 运行结果: [‘E:\PythonProject’, ‘E...’, ‘E:\Python3.6\lib\site-packages’] sys.path 返回的是一个列表,其中第一项,代表当前目录(如果从解释器中执行的话,会是一个空字符串),也就是这个.py文件的所在路径...在导入一个包的时候,Python 会根据 sys.path 中的目录来寻找这个包中包含的子目录。

    75330

    python模块与包揭秘

    想要知道你的机器上python模块的搜索路径可以查看sys.path import sys print sys.path ?...import语句我们前面也说了,模块对象被赋值给了一个变量名,然后那个模块中的内容都是通过【模块名.属性】的形式访问的,也就是被导入模块的命名空间与当前文件的命名空间是独立的,没有相互污染。 ?...而且在__init__.py中我们还常定义__all__列表。...前面我们说的就是绝对导入,直接给出一个绝对的路径(其实也是相对路径,看你怎么理解),现在我们不想那么写,就给出一个相对于当前目录的包路径,这样做就就更加明确了模块位置 from . import reverse...name__就为__main__ sys.path也就是模块搜索路径是可以被程序动态修改的 import与from语句都有一个as功能,就是给导入的包起一个简短的别名,如: from bs4 import

    48910

    推荐系统研究中常用的评价指标

    其中权重 是推荐列表中位置的倒数。 「3、quality of the list of recommendations」 当推荐项目的数量很大时,用户会更加重视推荐列表中排在前面的item。...这些item中发生的错误比列表中排在后面的item中的错误更严重。按排名列表对推荐效果进行加权评估的方法考虑了这种情况。...显然,当用户喜欢的商品都被放在推荐列表的前面时,该用户的半衰期效用指标达到最大值。...「3.2discounted cumulative gain」 折扣累计收益(discounted cumulative gain, DCG)的主要思想是用户喜欢的商品被排在推荐列表前面比排在后面会更大程度上增加用户体验...其中,Ωu表示ground-truth的结果, 表示i物品在推荐列表中的位置, $\displaystyle p_{uj}排在i前面。

    3.4K10

    充分理解 python -m mod

    通过比较不同的地方,我们发现: 第一种方法——直接运行脚本,当前脚本所在的路径会加入到 sys.path 列表中,但是 sys.modules 字典中的 __main__ 的路径不是绝对路径,只是脚本名称...第二种方法——当做模块方式运行,当前脚本所在的路径不会加入到 sys.path 列表中,但是 sys.modules 字典中的 __main__ 的路径是绝对路径,同时,还引入了 runpy 和 pkgutil...主要用途在于实现命令行 -m 执行 python 模块的效果。 pkgutil 的用途:获取包里面的所有模块列表。pkgutil.get_data() 可读取包内任何文件内容。...模块的导入机制 其实,上面的内容涉及到了 Python 包模块的导入机制。 要理解模块的导入机制,得理解几个关键的名词。sys.path -> sys.modules -> ....sys.path:是一个列表。保存着模块的搜索路径。如果路径没有存在与该列表中,可使用 sys.path.append() 导入。 sys.modules: 是一个字典。

    63920

    python模块和包

    中新增一行 __all__=['money','read1'] #这样在另外一个文件中用from spam import *就这能导入列表中规定的两个名字 3.2.5 考虑到性能的原因,每个模块只被导入一次...fib.py 2 python fib.py 50 #在命令行 回到顶部 3.4 模块搜索路径 python解释器在启动时会自动加载一些模块,可以使用sys.modules查看...在初始化后,python程序可以修改sys.path,路径放到前面的优先于标准库被加载。...1 >>> import sys 2 >>> sys.path.append('/a/b/c/d') 3 >>> sys.path.insert(0,'/x/y/z') #排在前的目录,优先被搜索 注意...变量sys.path是一个决定了模块搜索路径的字符串列表,它从环境变量PYTHONOATH中初始化默认路径,如果PYTHONPATH没有设置则从内建中初始化值,我们可以修改它 sys.path.append

    1.4K10
    领券