Tag: python

为什么__init __()总是在__new __()之后调用?

我只是想简化我的一个类,并已经引入了与flyweightdevise模式相同风格的一些function。 不过,我对__init__之后总是调用__init__有点困惑。 我并不期待这一点。 任何人都可以告诉我为什么发生这种情况,如何才能实现这个function呢? (除了把这个实现放到__new__里面,觉得挺__new__ )。 这是一个例子: class A(object): _dict = dict() def __new__(cls): if 'key' in A._dict: print "EXISTS" return A._dict['key'] else: print "NEW" return super(A, cls).__new__(cls) def __init__(self): print "INIT" A._dict['key'] = self print "" a1 = A() a2 = A() a3 = A() 输出: NEW INIT EXISTS INIT EXISTS INIT 为什么?

从列表中删除项目时出现奇怪的结果

我有这段代码: numbers = range(1,50) for i in numbers : if i < 20 : print "do something" numbers.remove(i) print numbers 但是我得到的结果是: [2,4,6,8,10,12,14,16,18,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35 ,36,37,38,39,40,41,42,43,44,45,46,47,48,49] 当然我期待20以下的数字不会出现在结果中,我假设我正在做一些错误的删除

在Python中滚动或滑动窗口迭代器

我需要一个在序列/迭代器/生成器上迭代的滚动窗口(又称滑动窗口)。 默认的Python迭代可以被认为是一个特殊情况,窗口长度是1.我目前使用下面的代码。 有没有人有这样做更Pythonic,不详细,或更有效的方法? def rolling_window(seq, window_size): it = iter(seq) win = [it.next() for cnt in xrange(window_size)] # First window yield win for e in it: # Subsequent windows win[:-1] = win[1:] win[-1] = e yield win if __name__=="__main__": for w in rolling_window(xrange(6), 3): print w """Example output: [0, 1, 2] [1, 2, 3] [2, 3, […]

如何parsingISO 8601格式的date?

我需要将RFC 3339stringparsing为Python的datetimetypes,如"2008-09-03T20:56:35.450686Z" 。 我已经在Python标准库中find了strptime ,但是不是很方便。 什么是最好的方法来做到这一点?

将两个列表映射到Python中的字典中

想象一下,你有: keys = ('name', 'age', 'food') values = ('Monty', 42, 'spam') 生成下面的字典最简单的方法是什么? a_dict = {'name' : 'Monty', 'age' : 42, 'food' : 'spam'} 这个代码有效,但我并不是很自豪: a_dict = {} junk = map(lambda k, v: a_dict.update({k: v}), keys, values)

如何读取/处理命令行参数?

我原本是C程序员。 我已经看到无数的技巧和“黑客”来阅读许多不同的论点。 Python程序员可以做些什么? 有关 抓取/parsing传递给Python脚本的命令行参数的最好方法是什么? 实现一个“[command] [action] [parameter]”风格的命令行界面? 我如何在Python中处理命令行参数? 如何使用Python的optparse格式化位置参数帮助?

从Python运行shell命令并捕获输出

我想编写一个函数来执行一个shell命令并将其输出作为一个string返回,不pipe它是一个错误还是成功的消息。 我只想得到和命令行一样的结果。 什么会是一个代码示例,会做这样的事情? 例如: def run_command(cmd): # ?????? print run_command('mysqladmin create test -uroot -pmysqladmin12') # Should output something like: # mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'

Python中的循环(或循环)导入

如果两个模块相互导入会发生什么? 为了概括这个问题,Python中的循环导入呢?

Python中append和extend列表方法的区别

列表方法append()和extend()之间有什么区别?

如何使用subprocess.Popen通过pipe道连接多个进程?

如何使用Python subprocess模块执行以下shell命令? echo "input data" | awk -f script.awk | sort > outfile.txt input数据将来自一个string,所以我实际上不需要echo 。 我有这么远,任何人都可以解释我怎么得到它通过sort吗? p_awk = subprocess.Popen(["awk","-f","script.awk"], stdin=subprocess.PIPE, stdout=file("outfile.txt", "w")) p_awk.communicate( "input data" ) 更新 :请注意,虽然下面接受的答案实际上并没有回答问题,但我相信S.Lott是正确的,最好是避免首先解决这个问题!