与“.format”类似,我希望能够在字符串之前自动加上前缀。我真的不知道这样做,但我认为它可能看起来像这样。
>>print("Function __init__ at CLASS myClass running...".log())
打印:
[myPrefix]函数 init 在CLASS myClass运行...
我不知道我将如何做到这一点。
答案 0 :(得分:1)
可悲的是,你甚至不能将属性修改为内置类型。这样:
def log(self):
print "logging "+self
str.log = log
str("hello")
print "hello".log()
给出:
Traceback (most recent call last):
Line 3, in <module>
str.log = log
TypeError: can't set attributes of built-in/extension type 'str'
执行此操作的最佳方法是编写一个日志记录方法,如下所示:
def log(s):
print("my-prefix -- "+s)
log("hello")
这样做的好处是,如果在以后阶段,您决定不打印日志记录语句,而是将它们管道化为文件,您只需要更改log
函数,而不是更改许多地方有印刷语句,例如:
def log(s):
with open("my_log.txt",w) as f:
data = f.write("the time - " + s)
log("hello")
现在,您的所有日志记录都将转到该文件,而无需更改实际的日志记录调用。