在编写自定义类时,通过==和!=运算符允许等效通常很重要.在Python中,这可以通过分别实现__eq__和__ne__特殊方法来实现.我发现这样做的最简单方法是以下方法:
class Foo:
def __init__(self, item):
self.item = item
def __eq__(self, other):
if isinstance(other, self.__class__):
return self.__dict__ == other.__dict__
else:
return False
def __ne__(self, other):
return not self.__eq__(other)
Run Code Online (Sandbox Code Playgroud)
你知道更优雅的做法吗?您是否知道使用上述比较方法的任何特殊缺点__dict__?
注意:有点澄清 - 何时__eq__和__ne__未定义,您会发现此行为:
>>> a = Foo(1)
>>> b = Foo(1)
>>> a is b
False
>>> a == b
False
Run Code Online (Sandbox Code Playgroud)
也就是说,a == b评估是False因为它真的运行a is b,是对身份的测试(即" a与...相同的对象b"). …
NumPy具有有效的函数/方法nonzero()来识别ndarray对象中非零元素的索引.什么是最有效的方式来获得该元素的索引做具有零值?
在Python中,使用字符串连接和字符串替换的位置和时间都不包括在内.由于字符串连接在性能上有很大的提升,这是一种风格决定而不是实际的决定吗?
举个具体的例子,如何处理灵活URI的构造:
DOMAIN = 'http://stackoverflow.com'
QUESTIONS = '/questions'
def so_question_uri_sub(q_num):
return "%s%s/%d" % (DOMAIN, QUESTIONS, q_num)
def so_question_uri_cat(q_num):
return DOMAIN + QUESTIONS + '/' + str(q_num)
Run Code Online (Sandbox Code Playgroud)
编辑:还有关于加入字符串列表和使用命名替换的建议.这些是中心主题的变体,哪种方式是正确的方式来做到这一点?谢谢你的回复!
您可以通过发出来设置 Vim颜色方案
:colorscheme SCHEME_NAME
Run Code Online (Sandbox Code Playgroud)
但是,奇怪的是,你无法通过发布获得当前使用的方案
:colorscheme
Run Code Online (Sandbox Code Playgroud)
因为这导致" E471: Argument required".我也没有看到输出中列出的配色方案:set.
那么你如何计算当前使用的颜色方案(除了手动切换主题直到你认出它)?
我试图安装Python包,这是我最近获得的一个系统.我试图利用Python相对较新的每用户site-packages目录和新选项--user.(该选项目前没有记录,但它适用于Python 2.6+;您可以通过运行来查看帮助python setup.py install --help.)
当我试着跑步时
python setup.py install --user
Run Code Online (Sandbox Code Playgroud)
在我下载的任何软件包上,我总是遇到以下错误:
error: can't combine user with with prefix/exec_prefix/home or install_(plat)base
Run Code Online (Sandbox Code Playgroud)
错误是因为非常令人困惑,因为你可以看到,我不提供--prefix,--exec-prefix,--install-base,或--install-platbase标志作为命令行选项.我浪费了很多时间试图找出问题所在.我在下面记录了我的答案,希望能让其他一些可怜的灵魂在几个小时的牦牛皮上刮胡子.
令人尴尬的并行问题通常包括三个基本部分:
我们可以在两个方面并行化程序:
这似乎是并发编程中最基本的模式,但我仍然试图解决它,所以让我们写一个规范的例子来说明如何使用多处理来完成.
下面是示例问题:给定一个包含整数行作为输入的CSV文件,计算它们的总和.将问题分成三个部分,这些部分可以并行运行:
下面是传统的单进程绑定Python程序,它解决了以下三个任务:
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# basicsums.py
"""A program that reads integer values from a CSV file and writes out their
sums to another CSV file.
"""
import csv
import optparse
import sys
def make_cli_parser():
"""Make the command line interface parser."""
usage = "\n\n".join(["python %prog INPUT_CSV OUTPUT_CSV",
__doc__,
""" …Run Code Online (Sandbox Code Playgroud) 如何在reStructuredText中的表示链接中格式化文本?
具体来说,我希望从我的第一个生成以下HTML:
<a href="http://docs.python.org/library/optparse.html"><tt>optparse.OptionParser</tt> documentation documentation</a>
Run Code Online (Sandbox Code Playgroud)
结果应如下所示:
其中"optparse.OptionParser"部分是固定宽度字体.
我试过了
```optparse.OptionParser`` <http://docs.python.org/library/optparse.html>`_
Run Code Online (Sandbox Code Playgroud)
然而,这给了
<tt class="docutils literal">`optparse.OptionParser</tt> documentation <<a class="reference external" href="http://docs.python.org/library/optparse.html">http://docs.python.org/library/optparse.html</a>>`_
Run Code Online (Sandbox Code Playgroud)
看起来像这样
``optparse.OptionParser
documentation <http://docs.python.org/library/optparse.html>\_
最近我发现我在Vim中"错误地使用了标签".我一直试图在Vim中使用缓冲区,因为通过MiniBufExplorer辅助,但我发现它很痛苦,因为从正常模式更改缓冲区需要多少次击键.使用选项卡,我可以在正常模式下执行gt或gT在选项卡之间来回跳转,我也NUMBERgt可以转到特定选项卡.
使用缓冲区,我要么必须使用:bn,:bp或者使用MiniBufExplorer 进入命令模式,使用Ctrl + k或Ctrl + Up跳到缓冲区窗口,使用h和向左或向右滚动l然后点击Enter以选择我想要的缓冲区.或者我可以做一些涉及领导序列的事情,但它总是需要从主行中移除多个手指.那是一个真正的痛苦.
如何在正常模式下获得等效的切换标签,以便在正常模式下切换缓冲区,这样我可以做gn/ gpfor :bn/ :bp和NUMBERgnfor :buf NUMBER?
我正在使用Java EE上的MySql数据库进行Web项目.我们需要一个视图来总结来自3个表格的数据,总体上超过3M行.每个表都是使用索引创建的.但是我没有找到一种方法来利用我们用[group by]创建的视图中的条件选择语句检索中的索引.
我得到了人们的建议,即在MySql中使用视图并不是一个好主意.因为你不能像在oracle中那样为mysql中的视图创建索引.但是在我进行的一些测试中,索引可以在view select语句中使用.也许我以错误的方式创建了这些观点.
我将用一个例子来描述我的问题.
我们有一张桌子记录了NBA比赛中的高分数据,其中的索引在[eventsnd_in]栏目中
CREATE TABLE `highscores` (
`tbl_id` int(11) NOT NULL auto_increment,
`happened_in` int(4) default NULL,
`player` int(3) default NULL,
`score` int(3) default NULL,
PRIMARY KEY (`tbl_id`),
KEY `index_happened_in` (`happened_in`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
插入数据(8行)
INSERT INTO highscores(happened_in, player, score)
VALUES (2006, 24, 61),(2006, 24, 44),(2006, 24, 81),
(1998, 23, 51),(1997, 23, 46),(2006, 3, 55),(2007, 24, 34), (2008, 24, 37);
Run Code Online (Sandbox Code Playgroud)
然后我创建了一个视图,看看科比每年得到的最高分
CREATE OR REPLACE VIEW v_kobe_highScores
AS
SELECT player, max(score) AS highest_score, …Run Code Online (Sandbox Code Playgroud) 如何将Z分数从Z分布(标准正态分布,高斯分布)转换为p值?我还没有找到Scipy stats模块中的神奇功能来做到这一点,但必须有一个.
python ×6
vim ×2
concurrency ×1
distutils ×1
equality ×1
equivalence ×1
indexing ×1
installation ×1
mysql ×1
numpy ×1
scipy ×1
statistics ×1
string ×1