相关疑难解决方法(0)

在Python中使用字符串格式打印元组

所以,我有这个问题.我得到了元组(1,2,3),我应该用字符串格式打印.例如.

tup = (1,2,3)
print "this is a tuple %something" % (tup)
Run Code Online (Sandbox Code Playgroud)

这应该用括号打印元组表示,比如

这是一个元组(1,2,3)

但我得到了TypeError: not all arguments converted during string formatting.

我能在世界上做到这一点吗?有点失去了这里,如果你们可以指出我正确的方向:)

python

116
推荐指数
10
解决办法
19万
查看次数

如何修复pylint logging-not-lazy?

我正在使用prospector来检查我的代码.Pylint返回了logging-not-lazy有关我的调试消息的警告.

Line: 31
  pylint: logging-not-lazy / Specify string format arguments as logging function parameters (col 16)   Line: 42
  pylint: logging-not-lazy / Specify string format arguments as logging function parameters (col 12)
Run Code Online (Sandbox Code Playgroud)

我的代码是:

logging.debug("detect mimetypes faild because %s" % e )
Run Code Online (Sandbox Code Playgroud)

我如何修复logging-not-lazypylint?

python pylint

63
推荐指数
1
解决办法
3万
查看次数

Python 3.7日志记录:f字符串与%

我在一个项目中遇到性能问题,并将其缩小到某些日志行。似乎即使我的日志记录工具高于正在记录的行的级别,也可以计算f字符串。

考虑以下示例以演示该问题:

import logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger('MyLogger')

class MyClass:
    def __init__(self, name: str) -> None:
        self._name = name
    def __str__(self) -> str:
        print('GENERATING STRING')
        return self._name

c = MyClass('foo')
logger.debug(f'Created: {c}')
Run Code Online (Sandbox Code Playgroud)

运行此示例时,我将在屏幕上打印“ GENERATING STRING”,表示__str__即使将我的日志记录级别设置为INFO,并且日志行为,该方法也正在运行DEBUG

据我今天所知,解决方案是使用以下vs f字符串。

logger.debug('Created: %s', c)
Run Code Online (Sandbox Code Playgroud)

我现在脑子里发生了三件事。

  • 我阅读的大多数示例和文档似乎都很老。
  • 该项目仅适用于Python 3.7+(不担心向后兼容)。
  • 我有很多代码行需要更新。

我很想知道其他人在这种情况下会做什么。是%s最好的(最现代的)办法?如上所述,有没有更现代的方式记录我的日志?

我有很多代码需要更新(修复),我希望与现代最佳实践保持一致。

python python-3.x

12
推荐指数
2
解决办法
4295
查看次数

Python 日志变量:插值还是格式?

使用 Python 记录变量的推荐方法logging是什么,为什么更好?

旧式插值:

apple = "green"
logger.debug("apple is %s", apple)
Run Code Online (Sandbox Code Playgroud)

或者

新风格 .format()

logger.debug("apple is {}".format(apple))
Run Code Online (Sandbox Code Playgroud)

我听说插值是首选的,因为它只评估要打印的字符串,但我还没有验证它是否真的很重要。

python logging

8
推荐指数
1
解决办法
2609
查看次数

Python pylint(raise-format-tuple) 异常参数表明字符串格式可能是有意的

使用一个简单的自定义异常类定义为:

class MyError(Exception):
    pass
Run Code Online (Sandbox Code Playgroud)

这个电话:

foo = 'Some more info'
raise MyError("%s: there was an error", foo)
Run Code Online (Sandbox Code Playgroud)

pylint 给出:

异常参数表明字符串格式可能是有意的 pylint(raising-format-tuple)

这个消息是什么意思?

python exception pylint

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

标签 统计

python ×5

pylint ×2

exception ×1

logging ×1

python-3.x ×1