相关疑难解决方法(0)

导入内部函数是pythonic吗?

PEP 8说:

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

在发生时,我违反了PEP 8.有时我会在函数中导入内容.作为一般规则,如果导入仅在单个函数中使用,则执行此操作.

任何意见?

编辑(我觉得导入函数的原因可能是一个好主意):

主要原因:它可以使代码更清晰.

  • 在查看函数的代码时,我可能会问自己:"什么是函数/类xxx?" (在函数内部使用xxx).如果我在模块的顶部有我的所有导入,我必须去那里查看xxx是什么.这在使用时更是一个问题from m import xxx.看到m.xxx这个功能可能会告诉我更多.具体取决于m:它是一个众所周知的顶级模块/包(import m)吗?或者它是一个子模块/包(from a.b.c import m)?
  • 在某些情况下,使用接近使用xxx的额外信息("什么是xxx?")可以使函数更容易理解.

python conventions

112
推荐指数
8
解决办法
4万
查看次数

Python中的好或坏练习:在文件中间导入

假设我有一个相对较长的模块,但只需要一次外部模块或方法.

在模块中间导入该方法或模块是否可以?

或者应该import只在模块的第一部分.

例:

import string, pythis, pythat
...
...
...
...
def func():
     blah
     blah 
     blah
     from pysomething import foo
     foo()
     etc
     etc 
     etc
...
...
...
Run Code Online (Sandbox Code Playgroud)

请证明您的答案是合理的,并添加指向PEP或相关来源的链接

python python-import

58
推荐指数
7
解决办法
2万
查看次数

导入应该在 Python 类内部还是外部?

概述

假设我正在构建一个用于一般用途的类:我可能需要在任何地方导入它,在其他几个文件中使用它等等。导入应该在类之前进行,如:

import foo

class Bar():

    def __init__(self):
        foo.spam()
Run Code Online (Sandbox Code Playgroud)

或者在__init__方法内部,如:

class Bar():

    def __init__(self):

        import foo

        foo.spam()
Run Code Online (Sandbox Code Playgroud)

我的分析

外部

+ 将foo引入全局命名空间以供自始至终使用Bar

- 导入Bar还需要您手动导入foo(@MartijnPieters等人

里面

+ 避免foo在您真正需要之前加载

+fooBar实例化导入(和使用)时加载(@BrenBarn)

-foo其他地方不可用

python

5
推荐指数
1
解决办法
2348
查看次数

将所有进口产品置于最高位置或根据需求,是否更"pythonic"?

可能重复:
Python中的好或坏做法:在文件中间导入

我已经习惯了Java这样的语言,它要求所有import语句都出现在类/文件的顶部.

哪个被认为是更加pythonic /"美丽" - 将它们全部放在顶部,或根据需要,因为它们是需要的?

python import

4
推荐指数
1
解决办法
1521
查看次数

标签 统计

python ×4

conventions ×1

import ×1

python-import ×1