天天看点

斤斤计较之Python:模块1、定义 harry.py2、关于sys、dir()3、“编译的” Python 文件.pyc

斤斤计较之Python:模块

  • 1、定义 harry.py
  • 2、关于sys、dir()
  • 3、“编译的” Python 文件.pyc

1、定义 harry.py

def print_name(name):

print(‘Hello’ ,name, ‘.My lord.’ )

我们定义了一个简单的模块,使用import harry即可调用,也可以使用from harry import print_name

harry.print_name(‘Harry’) # 输出 ‘Hello Harry. My lord.’

使用:from harry import * # 导入模块,可以导入harry中的所有的不包括以下划线(_)函数名开头命名的函数

实时导入变更单的模块有一个特定的函数:import imp; imp.reload(harry) # 当harry变化了之后使用此命令可以重新导入变更后的模块

使用harry.__name__会打印出模块的名称,也就是harry,当harry模块作为主程序运行时此时的__name__为 mian,所以使用:

if name==‘main’: # 只有在模块本身执行的时候才会执行此语句下的程序块

注意:模块在定义的过程中不应该与函数名相同,并且自己定义的函数脚本名也不应该与使用的模块名相同

2、关于sys、dir()

函数在调用的过程中会默认加载的路径有:

输入脚本(或者当前目录)

PYTHONPATH

安装目录

注意路径是可以使用命令添加的:sys.path.append(‘dirname’)

在交互模式下可以更改输出时的显示的主提示符 默认sys.ps1为 ‘>>>’ ,可以使用sys.ps1 = ‘Harry>>>’,进行更改。

在交互模式下可以更改输出时的显示的主提示符 默认sys.ps2 为 ‘…’,可以使用sys.ps2 = ‘****’,进行修改。

使用dir()能够列出某模块的所有它的定义,它返回一个字符串类型的存储列表,包括变量,模块,函数等信息

import builtins dir(builtins) # 列举所有内置模块

3、“编译的” Python 文件.pyc

Python 会在 pycache 目录下以 module.version.pyc 名字缓存每个模块编译后的版本,通常会包含 Python 的版本号。

若要支持没有源文件(只有编译版)的发布,编译后的模块必须在源目录下,并且必须没有源文件的模块。

在 Python 命令行中使用 -O 或者 -OO。-O 参数删除了断言语句,-OO 参数删除了断言语句和 doc 字符串,生成.pyo文件。

注意:编译前后的文件在执行速度上是相同的,但是编译后的问价加载速度更快。