什么命令打开Ruby的REPL?
在Python中,您只需打开python
而不需要任何参数.
有没有办法在Django shell会话期间打印Django ORM执行的原始SQL查询的数量?
这种信息已经由Django调试工具栏提供(例如,5 QUERIES in 5.83MS
但是如何从shell获取它并不明显.
该git
命令
git log --format='%H' --follow -- foo.txt
Run Code Online (Sandbox Code Playgroud)
将为您提供一系列提交,foo.txt
在重命名后跟随它.
我想知道是否有一个git log
命令也会在每次提交旁边打印相应的历史文件名.
这将是这样的,我们可以解释'%F'
为文件名的(实际上不存在的)占位符.
git log --format='%H %F' --follow -- foo.txt
Run Code Online (Sandbox Code Playgroud)
我知道这可以用
git log --format='%H' --follow --numstat -- foo.txt
Run Code Online (Sandbox Code Playgroud)
但输出并不理想,因为它需要一些非平凡的解析; 每个提交都遍布多行,您仍然需要解析文件重命名语法("bar.txt => foo.txt"
)以找到您要查找的内容.
覆盖Django的Model.validate_unique的正确方法是什么?我尝试覆盖它并提升我自己ValidationError
,但得到了这个错误:
AttributeError: 'ValidationError' object has no attribute 'message_dict'
Run Code Online (Sandbox Code Playgroud) 是否有可靠的自动方式(如命令行实用程序)来检查两个Python文件是否等效模数空格,分号,反斜杠延续,注释等?换句话说,他们与翻译相同?
例如,这个:
import sys
sys.stdout.write('foo\n')
sys.stdout.write('bar\n')
Run Code Online (Sandbox Code Playgroud)
应被视为等同于此:
import sys
sys.stdout.\
write('foo\n'); sys.stdout.\
write(
'bar\n') # This is an unnecessary comment
Run Code Online (Sandbox Code Playgroud) 我想在OS X中这样做:
ls -rt | xargs rm -i
Run Code Online (Sandbox Code Playgroud)
然而,rm
令人窒息的事实是一些文件有空格.
我提到OS X因为BSD的版本ls
没有-Q
标志.
有没有办法这样做而不必使用find -print0
?
Paul Graham描述了以下问题:
我们想编写一个生成累加器的函数——一个函数接受一个数字 n,并返回一个接受另一个数字 i 并返回 n 递增 i 的函数。
他说虽然这样的函数可以在 Lisp/Ruby/Perl 中实现,就像这样简单
(defun foo (n)
(lambda (i) (incf n i)))
Run Code Online (Sandbox Code Playgroud)
, 在 Python 中它会被写成
class foo:
def __init__(self, n):
self.n = n
def __call__(self, i):
self.n += i
return self.n
Run Code Online (Sandbox Code Playgroud)
所以我的问题是,Python 究竟是什么(除了缺乏对多行 lambda 的支持)阻止您以上面第一个代码示例的简洁风格实现累加器生成器?正如 Paul Graham 推测的那样,Python 将来会支持这样的事情吗?
我想将 psycopg2 用于INSERT
多行,然后id
使用单个查询返回所有s(按顺序)。这就是 PostgreSQLRETURNING
扩展的设计目的,使用cursor.execute
以下命令似乎可以正常工作:
cursor.execute(
"INSERT INTO my_table (field_1, field_2) "
"VALUES (0, 0), (0, 0) RETURNING id;"
)
print cursor.fetchall()
[(1,), (2,)]
Run Code Online (Sandbox Code Playgroud)
现在,为了传递动态生成的数据,似乎cursor.executemany
是要走的路:
data = [(0, 0), (0, 0)]
cursor.executemany(
"INSERT INTO my_table (field_1, field_2) "
"VALUES (%s, %s) RETURNING id;",
data
)
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,cursor.fetchall()
会产生以下结果:
[(4,), (None,)]
Run Code Online (Sandbox Code Playgroud)
我如何让它正确返回所有id
s 而不是一个?
有没有办法随意指定一个Bokeh图形轴上显示的值?
例如,假设您有一个分类轴x_range
[Jan 2001, Feb 2001, Mar 2001, ... December 2010]
,但您只想显示年份值[2001, 2002, ... 2010]
.因此,显而易见的方法是指定一个值到显示的映射,其中所有January值都映射到year字符串,所有其他值都映射到空字符串.这在散景中真的有可能吗?
打印终端:
\n\n> python -c \'print u"\\xae"\' # no complaints here!\n\xc2\xae\n
Run Code Online (Sandbox Code Playgroud)\n\n打印到文件:
\n\n> python -c \'print u"\\xae"\' > tmp.txt\nTraceback (most recent call last):\n File "<string>", line 1, in <module>\nUnicodeEncodeError: \'ascii\' codec can\'t encode character u\'\\xae\' in position 0: ordinal not in range(128)\n
Run Code Online (Sandbox Code Playgroud)\n\n当管道传输到cat
例如,
以下python代码有一个bug:
class Location(object):
def is_nighttime():
return ...
if location.is_nighttime:
close_shades()
Run Code Online (Sandbox Code Playgroud)
错误是程序员忘记调用is_nighttime
(或忘记@property
在方法上使用装饰器),因此该方法通过评估bool
True
而不被调用来进行转换.
有没有办法阻止程序员这样做,在上面的情况下,以及在is_nighttime
一个独立的函数而不是方法的情况下?例如,具有以下精神的东西?
is_nighttime.__bool__ = TypeError
Run Code Online (Sandbox Code Playgroud)