zoukankan      html  css  js  c++  java
  • [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的文件路径作为该解释器的参数
  • 相关阅读:
    云计算架构
    Java多线程中static变量的使用
    Spring单例与线程安全小结
    sparkSQL实战详解
    sparkSQL整体实现框架
    spark架构
    如何快速定位出一个IP地址的归属地?——二分查找变体
    如何在 1000 万个整数中快速查找某个整数?——二分查找
    语言库中常用的排序算法qsort()底层结构
    链表常考笔试面试题(常备)
  • 原文地址:https://www.cnblogs.com/LeeCookies/p/15523546.html
Copyright © 2011-2022 走看看