我正在使用Python的logging机制将输出打印到屏幕上.我可以使用print语句执行此操作,但我希望允许用户更精细地调整粒度以禁用某些类型的输出.我喜欢为错误打印的格式,但是当输出级别为"info"时,我更喜欢更简单的格式.
例如:
logger.error("Running cmd failed")
logger.info("Running cmd passed")
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我希望以不同的方式打印错误的格式:
Run Code Online (Sandbox Code Playgroud)# error Aug 27, 2009 - ERROR: Running cmd failed # info Running cmd passed
是否可以为不同的日志级别设置不同的格式而无需多个日志记录对象?我宁愿在没有修改记录器的情况下这样做,因为有大量的if/else语句来确定如何记录输出.
以下代码引发了一个KeyError异常:
addr_list_formatted = []
addr_list_idx = 0
for addr in addr_list: # addr_list is a list
addr_list_idx = addr_list_idx + 1
addr_list_formatted.append("""
"{0}"
{
"gamedir" "str"
"address" "{1}"
}
""".format(addr_list_idx, addr))
Run Code Online (Sandbox Code Playgroud)
为什么?
我正在使用Python 3.1.
我有桌子:
id | name
1 | a,b,c
2 | b
Run Code Online (Sandbox Code Playgroud)
我想要像这样的输出:
id | name
1 | a
1 | b
1 | c
2 | b
Run Code Online (Sandbox Code Playgroud) 例如 - 假设我想helloWorld()为Python的dict类型添加一个方法.我可以这样做吗?
JavaScript有一个行为方式的原型对象.也许这是糟糕的设计,我应该继承dict对象,但它只适用于子类,我希望它可以在任何和所有未来的字典上工作.
以下是它在JavaScript中的表现:
String.prototype.hello = function() {
alert("Hello, " + this + "!");
}
"Jed".hello() //alerts "Hello, Jed!"
Run Code Online (Sandbox Code Playgroud)
这是一个有用的链接,包含更多示例 - http://www.javascriptkit.com/javatutors/proto3.shtml
我在php中使用地图如下:
function func($v) {
return $v * 2;
}
$values = array(4, 6, 3);
$mapped = array_map(func, $values);
var_dump($mapped);
Run Code Online (Sandbox Code Playgroud)
是否有可能获得函数中值的索引?
另外 - 如果我正在编写需要索引的代码,我应该使用for循环而不是map吗?
例如:
$names = {[bob:27, billy:43, sam:76]};
Run Code Online (Sandbox Code Playgroud)
然后能够像这样引用它:
$names[bob]
Run Code Online (Sandbox Code Playgroud) 我想将SVG图像转换为具有透明背景和抗锯齿边缘的PNG文件(使用半透明像素).不幸的是,我不能让ImageMagick做抗锯齿,边缘总是看起来很糟糕.这是我试过的:
convert +antialias -background transparent in.svg -resize 25x25 out.png
Run Code Online (Sandbox Code Playgroud)
我可以使用任何想法或不同的命令行工具?
惊喜 - 这是MySQL中完全有效的查询:
select X, Y from someTable group by X
Run Code Online (Sandbox Code Playgroud)
如果您在Oracle或SQL Server中尝试过此查询,则会收到自然错误消息:
Column 'Y' is invalid in the select list because it is not contained in
either an aggregate function or the GROUP BY clause.
Run Code Online (Sandbox Code Playgroud)
那么MySQL如何确定每个X显示哪个Y?它只选了一个.据我所知,它只是挑选它找到的第一个Y. 理由是,如果Y既不是聚合函数也不是group by子句,那么在查询中指定"select Y"就没有意义.因此,我作为数据库引擎将返回我想要的任何内容,你会喜欢它.
甚至还有一个MySQL配置参数来关闭这种"松散". http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html#sqlmode_only_full_group_by
本文甚至提到MySQL在这方面如何被批评为ANSI-SQL不兼容. http://www.oreillynet.com/databases/blog/2007/05/debunking_group_by_myths.html
我的问题是: 为什么 MySQL是这样设计的?打破ANSI-SQL的理由是什么?
我在Python中搜索一个简短而酷的rot13函数;-)我写了这个函数:
def rot13(s):
chars = "abcdefghijklmnopqrstuvwxyz"
trans = chars[13:]+chars[:13]
rot_char = lambda c: trans[chars.find(c)] if chars.find(c)>-1 else c
return ''.join( rot_char(c) for c in s )
Run Code Online (Sandbox Code Playgroud)
谁能让它变得更好?例如,支持大写字符.
在python中,我可以定义一个函数如下:
def func(kw1=None,kw2=None,**kwargs):
...
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以调用func作为:
func(kw1=3,kw2=4,who_knows_if_this_will_be_used=7,more_kwargs=Ellipsis)
Run Code Online (Sandbox Code Playgroud)
我也可以定义一个函数:
def func(arg1,arg2,*args):
...
Run Code Online (Sandbox Code Playgroud)
可称为
func(3,4,additional,arguments,go,here,Ellipsis)
Run Code Online (Sandbox Code Playgroud)
最后,我可以将两种形式结合起来
def func(arg1,arg2,*args,**kwargs):
...
Run Code Online (Sandbox Code Playgroud)
但是,什么是行不通的是:
func(arg1,arg2,*args,kw1=None,kw2=None,**kwargs): #SYNTAX ERROR (in python 2 only, apparently this works in python 3)
...
Run Code Online (Sandbox Code Playgroud)
我最初的想法是,这可能是因为一个功能
def func(arg1,arg2,*args,kw1=None):
...
Run Code Online (Sandbox Code Playgroud)
可以称为
func(1,2,3) #kw1 will be assigned 3
Run Code Online (Sandbox Code Playgroud)
因此,这将引入一些含糊不清的关于3是否应该打包成args或kwargs.但是,使用python 3,可以指定仅关键字参数:
def func(a,b,*,kw=None): #can be called as func(1,2), func(1,2,kw=3), but NOT func(1,2,3)
...
Run Code Online (Sandbox Code Playgroud)
有了这个,似乎没有语法模糊:
def func(a,b,*args,*,kw1=None,**kwargs):
...
Run Code Online (Sandbox Code Playgroud)
但是,这仍然会导致语法错误(使用Python3.2测试).这是否有理由让我失踪?并且,有没有办法获得我上面描述的行为(使用默认参数*args) - 我知道我可以通过操作函数内部的kwargs字典来模拟该行为.
python ×5
delimiter ×2
dictionary ×2
mysql ×2
php ×2
sql ×2
syntax ×2
ansi-sql ×1
arrays ×1
encoding ×1
imagemagick ×1
inkscape ×1
iteration ×1
kwargs ×1
logging ×1
loops ×1
missing-data ×1
png ×1
python-3.x ×1
string ×1
svg ×1
terminology ×1