首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这段代码遵循Python编码标准\风格和习惯用法吗?

这段代码遵循Python编码标准\风格和习惯用法吗?
EN

Stack Overflow用户
提问于 2011-05-02 14:33:23
回答 3查看 157关注 0票数 0

我用log.py写了这段代码。

代码语言:javascript
复制
import logging
import os


# make directory
directory = 'logs'
if not os.path.exists(directory):
  os.makedirs(directory)

# create logger
logger = logging.getLogger('testfile')
logger.setLevel(logging.DEBUG)


loghandler = logging.FileHandler(directory + '\log.txt')

# create formatter
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

# add formatter to loghandler
loghandler.setFormatter(formatter)

# add loghandler to logger
logger.addHandler(loghandler)

现在,用户可以在任何模块中使用它,比如

代码语言:javascript
复制
import log
log.logger.warn("gjh")
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-02 14:39:44

您正在为单个全局对象创建一个完整的模块。如果你想保存代码,只需要有一个创建它的函数:

代码语言:javascript
复制
def make_logger():
  logger = logging.getLogger('testfile')
  # initializations...
  # ...
  return logger

logger = make_logger()
logger.warn('ghj')

有了关键字参数和默认值,如果需要的话,您还可以很容易地自定义它的创建(当您的程序变得更加复杂时,也可能会出现这种情况)。

票数 3
EN

Stack Overflow用户

发布于 2011-05-02 14:50:36

我发现了几个问题

显然,你使用了两个空格进行缩进,而这个is a crime in Python

  • You使用的是'\log.txt',因为小写字母L作为控制字符没有特殊意义。最好改用特定于操作系统的路径构造函数(请参阅os.path.join)
票数 2
EN

Stack Overflow用户

发布于 2011-05-02 14:49:33

关于编码风格,我建议使用专用工具。以前有过一些帖子,例如这篇:PyLint, PyChecker or PyFlakes?

就我个人而言,我更喜欢将pylint与配置文件一起使用,以适应我希望在项目中遵循的某些内容(例如,特殊变量名)。如果你想快速浏览一下,可以试试pep8

致以最好的问候,Rainer

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5854129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档