[Python]编码规范性(二)——排版(导入)

导入:

(必须遵守)(规则):

10、加载模块必须分开,每个模块占一行;

一行只能加载一个模块,但,同一个模块内,多个符号,可以在同一行加载;

import 语句有一个变体,可以直接把模块里的名称导入到另一个模块的符号表:
>>> from fibo import fib, fib2
>>> fib(500)
这段代码不会把模块名导入到局部符号表里(因此,本例没有定义 fibo)


还有一种变体可以导入模块内定义的所有名称:
>>> from fibo import *
>>> fib(500)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377
这种方式会导入所有不以下划线(_)开头的名称;
大多数情况下,不要用这个功能,这种方式向解释器导入了一批未知的名称,可能会覆盖已经定义的名称;
注意,一般情况下,不建议从模块或包内导入 *, 因为,这项操作经常让代码变得难以理解;
不过,为了在交互式编译器中少打几个字,这么用也没问题;

11、导入部分(imports)置于模块注释和文档字符串之后,模块全局变量和常量声明之前;

 说明:在导入库时,按照:标准库第三方关联库本地特定的库/程序顺序导入,并在几组导入语句之间增加一个空行;

import os
import sys

from oslo_config import cfg

from cinder import context
from cinder import db

(必须考虑)(建议):

12、避免使用from xxx import * 的方式导入某模块的所有成员;

说明:from xxx import *

会将其他模块中的所有成员挨个赋值给当前范围的同名变量,如果当前范围已经有同名变量,则会静默将其覆盖;

这种方式容易导致名字冲突,且冲突后不容易定位,应当尽量避免使用;

13、类UNIX操作系统上直接执行的Python文件头部,建议使用#!/usr/bin/env python指定解释器;

类Unix操作系统上使用Hashbang “#!/usr/bin/env python”声明的时候,会取系统的 PATH 变量中指定的第一个 Python来执行你的脚本,有助于正确指定执行Python文件的解释器。

Hashbang的位置需要放在文件编码声明之前;

Windows操作系统可忽略此建议。 

在计算领域中,Shebang(也称为Hashbang)是一个由“#”和“!”构成的字符序列#!
其出现在文本文件的第一行的前两个字符
在文件中存在Shebang的情况下,类UNIX操作系统的程序载入器会分析Shebang后的内容,将这些内容作为解释器指令,并调用该指令,并将载有Shebang的文件路径作为该解释器的参数
posted @ 2021-11-08 11:52  MoKin_Li  阅读(220)  评论(0编辑  收藏  举报