读书笔记--《Python基础教程第二版》--第十章 充电时刻

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读书笔记--《Python基础教程第二版》--第十章 充电时刻相关的知识,希望对你有一定的参考价值。

第10章 充电时刻

10.1 模块

 math cmath

>>> import math
>>> math.sin(0)
0.0


10.1.1 模块是程序


cat hello.py

#!/usr/bin/env python
#coding=utf-8
print "Hello ,world"
>>> import math
>>> math.sin(0)
0.0
>>> import sys
>>> sys.path.append(‘/root/python‘) #或者sys.path.expanduser(‘~/python‘)
>>> import hello
Hello ,world


导入模块的时候会生成pyc文件,下次导入的时候会导入.pyc文件,导入模块主要用于定义,比如变量、函数、类等,模块如果被导入,就不会被再次导入

即使执行import命令,这样做,可以避免循环导入,除非使用reload()

>>> reload(hello)
Hello ,world
<module ‘hello‘ from ‘/root/python/hello.pyc‘>

但是一般不建议使用relaod


10.1.2  模块用于定义

 模块可以保持自己的作用域

 

 1、加载模块中定义函数

 cat hello2.py
 #!/usr/bin/env python
#coding=utf-8
def hello():
    print "Hello,world!"

 

 >>> import hello2

这意味着hello函数在模块的作用域内被定义了,可以通过下面的方式来访问


>>> hello2.hello()

Hello,world!


我们可以通过同样的方法来使用任何模块的全局作用域中定义的名称

为了让代码重用,请将它模块化


2.在模块中增加测试代码


>>> __name__

‘__main__‘


>>> hello2.__name__

‘hello2‘



# cat hello3.py
#!/usr/bin/env python
#coding=utf-8
def hello():
    print "Hello,world!"
# test
hello()
>>> import hello3
Hello,world!





加入__name__==‘__main__‘的目的是让模块在被导入的时候不执行


# cat hello4.py
#!/usr/bin/env python
#coding=utf-8
def hello():
    print "Hello,world!"
def test():
    hello()
if __name__==‘__main__‘:test()


>>> import hello4
>>> hello4.hello()
Hello,world!
>>> hello4.test()
Hello,world!


10.1.3  让你的模块可用

1、将模块放置在正确的位置

>>> import sys,pprint
>>> pprint.pprint(sys.path)
[‘‘,
 ‘/usr/lib64/python27.zip‘,
 ‘/usr/lib64/python2.7‘,
 ‘/usr/lib64/python2.7/plat-linux2‘,
 ‘/usr/lib64/python2.7/lib-tk‘,
 ‘/usr/lib64/python2.7/lib-old‘,
 ‘/usr/lib64/python2.7/lib-dynload‘,
 ‘/usr/lib64/python2.7/site-packages‘,
 ‘/usr/lib64/python2.7/site-packages/gtk-2.0‘,
 ‘/usr/lib/python2.7/site-packages‘,
 ‘/root/python‘]

 

 

 /usr/lib64/python2.7/site-packages 是最好的选择

 

2、告诉编译器去哪里找

编辑sys.path


export PYTHONPATH="/Library/Python/2.7/site-packages:{$PYTHONPATH}"  


路径配置文件 .pth 文件来实现

 Python 在遍历已知的库文件目录过程中,如果见到一个 .pth 文件,就会将文件中所记录的路径加入到 sys.path 设置中,于是 .pth 文件说指明的库也就可以被 Python 运行环境找到了。

 .pth 文件:import预计会被执行,#会被忽略

 


10.1.4 包


本文出自 “小鱼的博客” 博客,谢绝转载!

以上是关于读书笔记--《Python基础教程第二版》--第十章 充电时刻的主要内容,如果未能解决你的问题,请参考以下文章

读书笔记--《Python基础教程第二版》--第六章 抽象

读书笔记--《Python基础教程第二版》--第十章 充电时刻

读书笔记--《Python基础教程第二版》--第七章 更加抽象

读书笔记--《Python基础教程第二版》--第2章列表和元组

读书笔记--《Python基础教程第二版》-- 第五章 条件循环和其他语句

读书笔记--《Python基础教程第二版》-- 第四章 字典:当索引不好用时