相关疑难解决方法(0)

import语句应该始终位于模块的顶部吗?

PEP 08指出:

导入总是放在文件的顶部,就在任何模块注释和文档字符串之后,以及模块全局变量和常量之前.

但是,如果我导入的类/方法/功能仅在极少数情况下使用,那么在需要时进行导入肯定会更有效率吗?

不是这个:

class SomeClass(object):

    def not_often_called(self)
        from datetime import datetime
        self.datetime = datetime.now()
Run Code Online (Sandbox Code Playgroud)

比这更有效率?

from datetime import datetime

class SomeClass(object):

    def not_often_called(self)
        self.datetime = datetime.now()
Run Code Online (Sandbox Code Playgroud)

python optimization coding-style

373
推荐指数
14
解决办法
10万
查看次数

Python导入编码风格

我发现了一种新的模式.这种模式是众所周知的还是对它的看法是什么?

基本上,我很难刷新源文件以找出可用的模块导入等等,所以现在,而不是

import foo
from bar.baz import quux

def myFunction():
    foo.this.that(quux)
Run Code Online (Sandbox Code Playgroud)

我将所有导入移动到它们实际使用的函数中,如下所示:

def myFunction():
    import foo
    from bar.baz import quux

    foo.this.that(quux)
Run Code Online (Sandbox Code Playgroud)

这做了一些事情.首先,我很少意外地用其他模块的内容污染我的模块.我可以__all__为模块设置变量,但随后我必须在模块发展时更新它,这对于实际存在于模块中的代码无效.

其次,我很少在我的模块顶部进行一连串的进口,其中一半或更多我不再需要,因为我已经重构了它.最后,我发现这个模式更容易阅读,因为每个引用的名称都在函数体中.

python coding-style

62
推荐指数
5
解决办法
2万
查看次数

标签 统计

coding-style ×2

python ×2

optimization ×1