测试题:

0. __name__属性指的是在调用该模块的时候调用的函数名称,方便在模块的被调用的时候,模块内部被调用的函数不会被运行。

1. 当模块作为主程序运行的时候,__name__属性的值是“__main__”,当该模块被调用导入到另一个模块的时候,"__name__"属性值为模块名称。

2. 通过sys模块的path变量显示搜索路径:

 import sys
sys.path

3. 将相关模块文件的路径加入到搜索路径中,例如:

 import sys
sys.path.append("*****") # *****表示模块坐在路径

但是这里小甲鱼推荐把包最好都存放在python的安装路径里面的sitepackages文件夹内,顺便说一下,安装包的时候,比如numpy直接在官网下载wheel源代码文件然后存入sitepackages文件夹内就可以直接调用numpy这个包里面的所有模块和函数了,再次感谢开源的好处。

4. urllib属于包,request属于包里面的模块

5. 包其实就是在普通文件夹内添加了文件“__init__.py”的模块文件,文件夹内拥有模块,此时文件夹就是一个包了,所以文件夹是否是包的最大区别就是是否拥有“__init__.py”模块。其中这个__init__.py文件就是一个初始化文件,可以为空,也可以写入一些初始化的代码。

动动手:

0. 修改以下程序:

 # a.py
import b def x():
print('x') b.y() # b.py
import a def y():
print('y') a.x() 执行 b.py 引发下边异常:
>>>
Traceback (most recent call last):
File "/Users/FishC/Desktop/b.py", line 1, in <module>
import a
File "/Users/FishC/Desktop/a.py", line 1, in <module>
import b
File "/Users/FishC/Desktop/b.py", line 6, in <module>
a.x()
AttributeError: 'module' object has no attribute 'x'

最好的方式,是单独建立一个模块,用来调用a和b模块,因为a与b两个模块不会被互相调用,否则因为任何一个模块的不完整而报错:

 # test.py

 import a
import b
a.x()
b.y()

还有一个方式,如果不想建立一个单独的模块,可以这样(程序就不会报错了):

 # a.py
# import b def x():
print('x')
 # b.py
import a def y():
print('y') if __name__ == "__main__":
a.x()

小甲鱼第51讲:《__name__="__main__"、搜索路径和包》课后练习题的更多相关文章

  1. python基础】——python添加模块搜索路径和包的导入

    方法一:函数添加1 import sys2 查看sys.path3 添加sys.path.append("c:\\") 方法二:修改环境变量w用户可以修改系统环境变量PYTHONP ...

  2. Python 学习 第十五篇:模块搜索路径和包导入

    在导入自定义的模块时,除了指定模块名之外,也需要指定目录,由于Python把目录称作包,因此,这类导入被称为包导入.包导入把计算机上的目录变成Python的命名空间,而目录中所包含的子目录和模块文件则 ...

  3. python的搜索路径与包(package)

    python的搜索路径其实是一个列表,它是指导入模块时,python会自动去找搜索这个列表当中的路径,如果路径中存在要导入的模块文件则导入成功,否则导入失败: >>> import ...

  4. 小甲鱼零基础入门学习python--课后作业

    [小甲鱼零基础入门学习python--课后作业] 小甲鱼零基础入门学习python--课后作业 本章内容: 1.基础部分的作业 2.函数部分的作业 3.字典.集合.文件部分作业 4.异常 5.Easy ...

  5. 小甲鱼零基础入门PYTHON

     000.愉快的开始 00:17:37 ☆  001.我和Python的第一次亲密接触 00:13:26 ★  002.用Python设计第一个游戏 00:24:00 ★  003.小插曲之变量和字符 ...

  6. Python3零基础入门学习视频+源码+课件+习题-小甲鱼

    目录 1. 介绍 2. 目录 3. 下载地址 1. 介绍 适用人群 完全零基础入门,不需要任何前置知识. 课程概述 本系列教程面向零基础的同学,是一个深入浅出,通俗易懂的Python3视频教程. 前半 ...

  7. 6.移动端自动化测试-小知识 if __name__==’__main__:是什么意思?

    1 引言 在Python当中,如果代码写得规范一些,通常会写上一句“if __name__==’__main__:”作为程序的入口,但似乎没有这么一句代码,程序也能正常运行.这句代码多余吗?原理又在哪 ...

  8. 小甲鱼python视频第九讲(课后习题)

    1.列表里可以存放什么东西? 可以存放任何的数据类型, list1 = ['我爱你','i love you',1314] print(list1) 2.向列表中添加元素 append(将参数作为一个 ...

  9. 小甲鱼python视频第八讲(课后习题)

    1.for循环的使用,注意下面代码的区别 for i in range(0,10,2): print("i love you") for i in range(0,10): pri ...

随机推荐

  1. yum安装mariadb

    安装mysql yum install mariadb mariadb-server MySQL-python mysql-devel Package MySQL-python-1.2.5-1.ibm ...

  2. 使用Number.parseFloat引发的悲剧

    起因: 前几天,项目中有人用了Number.parseFloat(xxx)方法.在Chrome和FF中是可以使用的.然而在IE中却报错,提示不存在这个function. Solution: 经查Jav ...

  3. 数据结构--AC自动机--hdu 2896

    病毒侵袭 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. php类型转换以及类型转换的判别

    部分摘自PHP: 类型 - Manual 相关链接 PHP 在变量定义中不需要(或不支持)明确的类型定义:变量类型是根据使用该变量的上下文所决定的.也就是说,如果把一个 string 值赋给变量 $v ...

  5. 用UNIX消息队列实现IPC(以ATM为例)

    清明假期三天没出寝室的门,先是把独立的博客折腾好了.域名备案还没好.域名是ilovecpp.com,意为“我爱C++”,好羞涩,掩面,逃:).话说cnblogs.com的界面好丑 .其余大部分时间就是 ...

  6. 如何在nopcommerce3.3注册页面添加密码强度检查仪?

    我刚刚完成了nopCommerce注册页面的密码强度检查仪,因为我觉得在电子商务交易平台,安全问题是非常重要的.在注册页面有必要添加一个密码强度检测仪,以便通知用户他们的密码是否足够强大.今天,大多数 ...

  7. HBase 专题技术收录

    HBase系列: 博客地址:http://www.cnblogs.com/panfeng412/tag/HBase/ 技术专题文章: HBase中MVCC的实现机制及应用情况 HBase在单Colum ...

  8. Java 嵌套解析 json

    1.首先需要安装org.json.jar 2.类JSONObject用于创建一个json对象.其中的JSONObject.put(KEY, VALUE)用于向其中添加条目 3.JSONObject.g ...

  9. hdu-5521 Meeting(最短路)

    题目链接: Meeting Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) ...

  10. Mango Weekly Training Round #3 解题报告

    A. Codeforces 92A Chips 签到题.. #include <iostream> #include <cstdio> #include <cstring ...