福州网站seo优化公司,徐州百度运营中心,seo排名工具提升流量,软件应用开发本系列随笔是本人的学习笔记#xff0c;初学阶段难免会有理解不当之处#xff0c;错误之处恳请指正。转载请注明出处#xff1a;https://www.cnblogs.com/itwhite/p/12302882.html。目录一、模块指定导入的符号列表模块查找的路径在模块中插入测试代码二、包一、模块所有 py…本系列随笔是本人的学习笔记初学阶段难免会有理解不当之处错误之处恳请指正。转载请注明出处https://www.cnblogs.com/itwhite/p/12302882.html。目录一、模块指定导入的符号列表模块查找的路径在模块中插入测试代码二、包一、模块所有 python 程序(.py文件)都可以作为一个模块例如# foo.pyclass Foo (object):def __init__(self):print(Created a Foo object)def foo():print(foo() is called)FOO 123# 测试使用 foo 模块 from foo import * # 导入 foo 模块即 foo.py 中的内容(注不会导入以下划线开头的符号) f Foo() # 创建 Foo 的实例Created a Foo object foo() # 调用 foo.py 中的 foo() 函数foo() is called FOO # 直接使用 foo.py 中的全局变量 FOO1231. 指定导入的符号列表从前面可以看到通过 import * 语句会导入所有(不是以下划线开头的)符号通过 __all__ 可以限定这种方式导入的符号例如# foo.py__all__ [Foo, foo] # 只导出类名 Foo 和函数 foo() 的符号class Foo (object):def __init__(self):print(Created a Foo object)def foo():print(foo() is called)FOO 123 # FOO 未被导出# 测试使用 foo 模块 from foo import * # 导入 foo 模块即 foo.py 中的内容(注不会导入以下划线开头的符号) f Foo() # 创建 Foo 的实例Created a Foo object foo() # 调用 foo.py 中的 foo() 函数foo() is called FOO # FOO 未被导出Traceback (most recent call last):File , line 1, in NameError: name FOO is not defined foo.FOO # 只能以模块名限定的形式访问1232. 模块查找的路径通过 sys.path 可以查看和配置 python 解释器查找模块的路径列表 import sys sys.path # 搜索路径列表[, C:\\Windows\\system32\\python27.zip, C:\\Python27\\DLLs,C:\\Python27\\lib, C:\\Python27\\lib\\plat-win, C:\\Python27\\lib\\lib-tk,C:\\Python27, C:\\Python27\\lib\\site-packages] sys.path.append(C:\\tmp\\python) # 追加一条搜索路径另一种更常见的办法是通过 PYTHONPATH 环境变量去配置模块查找路径例如export PYTHONPATH$PYTHONPATH:~/python3. 在模块中插入测试代码有时候我们需要为模块写一些测试代码直接写入模块文件中方便修改但是不希望 import 时执行可以通过当前模块名(__name__)来判断当前文件是作为主文件还是模块文件使用的例如# add.pydef add(a, b):return a b# 测试代码当且仅当直接执行 add.py 才会执行(通过 import 导入 add.py 文件不会执行 if 中的内容)if __name__ __main__:print Testing add()assert add(1, 2) 3print Passed二、包Python 中的“包”不需要在代码中声明而是以文件夹的形式存在只需要在某个文件夹中创建一个 init.py 文件(可以为空文件)即可然后放入其中的模块文件就属于这个包例如# 目录结构.-- foo # 目录名| -- __init__.py # 空文件python 解释器看到它会认为当前目录是一个包| -- bar.py # 模块文件-- test.py # 测试文件# bar.py 文件内容def qux():print(qux() is called)# test.py 文件内容from foo.bar import quxqux() # qux() is called另外“包”本身也可以作为一个模块模块内容写入相应的 __init__.py 文件中即可例如修改上面的文件内容# __init__.py 文件内容def quz():print(quz() is called)# test.py 文件内容修改如下from foo import quzquz() # quz() is called