[Python]小甲鱼Python视频第051课(__name__属性、搜索路径和包)课后题及参考解答
# -*- coding: utf-8 -*- """ Created on Tue Mar 26 23:45:37 2019 @author: fengs """ """ 测试题(笔试,不能上机哦~) """ """ 0. __name__ 属性的含义是什么? 当前运行的模块名 1. 什么时候 __name__ 属性的值是 "__main__"? 作为独立程序: __main__ 作为模块被引入:__name__的属性就是模块名 2. 如果获得当前 Python 的搜索路径? import sys print(sys.path) 3. 如果你不想将相关的模块文件放在当前文件夹内,那最好的选择是? 方法1: sys.path.append(相关的模块文件所在路径) 方法2: 把相关的模块文件放在已有的搜索路径中--->site-packages 4. 如果你见到 import urllib.request 语句,那么这个 urllib 是什么? 包名 a.新建一个文件夹,文件夹名称就是包名 b.在文件夹中创建一个 __init__.py 文件,可以为空 c.把相关的模块文件放在文件夹中 import 包名.模块名 5. Python 如何区分一个文件夹是普通文件夹还是包? 文件夹中是否有 __init__.py文件 """ print(__name__) # -----> __main__ class Test: def __init__(self): print(__name__) test = Test() """ 动动手0. 0. 执行下边 a.py 或 b.py 任何一个文件,都会报错,请改正程序。 注:这道题原理跟上一节课的课后作业(测试题 4、5)类似,如果上节课你搞懂了,这道题应该可以想出解决方案,不要轻易看答案,除非你已经抓破头皮……. # 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.py import b def x(): print('x') if __name__ == '__main__': b.y() # b.py import a def y(): print('y') if __name__ == '__main__': a.x()
~不再更新,都不让我写公式,博客园太拉胯了