2024-09-26 17:48:01 发布
网友
当我用Python编程并且需要导入多个模块时,我通常会这样做:
import random, time, matplotlib, cheese, doge
当我阅读别人的代码时,我看到的是:
import random import time import matplotlib import cheese import doge
这是为什么?这两种款式有什么区别吗?
每行一个导入的实践在PEP8中是标准化的,遵循一个通用的标准就足够了。遵循公共标准遵循Principle of Least Astonishment,使熟悉标准的人更容易阅读和修改代码。
即使您不关心PEP8,但是每行一个导入会使您的代码更易于维护。
导入更易于浏览/阅读:
import fred
fred
import barney, betty, wilma, fred, bambam, pebbles
导入更容易找到:
import fred, wilma, pebbles
import barney, fred
导入更易于编辑:
导入更易于维护:
每行一次导入将是一个好主意,即使它不是标准。因为这是标准,所以这是最好的方法。
I don't like to follow blindly without valid reason. As PEP20: Zen of Python states that "Readability Counts"
PEP8“每导入一行”适用于一般透视图。虽然我尊重他的(即圭多)意见,但我不会一直严格遵守这些惯例。
此规则的例外情况仅当代码的#小于模块导入的#时。e、 g.2行代码,但4个模块导入。
这更容易阅读:(在我看来)
import os, sys, math, time def add_special(): return time.time() + math.floor(math.pow(sys.api_version + os.getpid(), 2))
而不是这个
import os import sys import math import time def add_special(): return time.time() + math.floor(math.pow(sys.api_version + os.getpid(), 2))
但这种可读性对每个人来说是不同的。
根据PEP-8(Python代码的样式指南)
Imports should usually be on separate lines, for e.g Yes: import os import sys No: import sys, os It's okay to say this though: from subprocess import Popen, PIPE
回答你的问题-两个都可以,但其中一个不符合PEP8指南。
每行一个导入的实践在PEP8中是标准化的,遵循一个通用的标准就足够了。遵循公共标准遵循Principle of Least Astonishment,使熟悉标准的人更容易阅读和修改代码。
即使您不关心PEP8,但是每行一个导入会使您的代码更易于维护。
导入更易于浏览/阅读:
import fred
中得到fred
比在import barney, betty, wilma, fred, bambam, pebbles
中更容易看到导入更容易找到:
import fred
和import fred, wilma, pebbles
,但找不到import barney, fred
导入更易于编辑:
导入更易于维护:
每行一次导入将是一个好主意,即使它不是标准。因为这是标准,所以这是最好的方法。
PEP8“每导入一行”适用于一般透视图。虽然我尊重他的(即圭多)意见,但我不会一直严格遵守这些惯例。
此规则的例外情况仅当代码的#小于模块导入的#时。e、 g.2行代码,但4个模块导入。
这更容易阅读:(在我看来)
而不是这个
但这种可读性对每个人来说是不同的。
根据PEP-8(Python代码的样式指南)
回答你的问题-两个都可以,但其中一个不符合PEP8指南。
相关问题 更多 >
编程相关推荐