我不知道这是否是正确的论坛.
我的公司使用CVS作为版本控制系统.我们计划转向更现代的版本控制系统.作为风险最小的解决方案,您会建议什么?
我的想法是使用Subversion但我也听到很多关于Git和Mercurial的好东西
但是,我们是一家小公司,我们不需要分布式版本控制系统.Git或Mercurial在Subversion方面有什么优势,除了它们是分布式的?
有人可以解释以下行为:
class derivedset1(frozenset):
def __new__(cls,*args):
return frozenset.__new__(cls,args)
class derivedset2(set):
def __new__(cls,*args):
return set.__new__(cls,args)
a=derivedset1('item1','item2') # WORKS
b=derivedset2('item1','item2') # DOESN'T WORK
Traceback (most recent call last):
File "inheriting-behaviours.py", line 12, in <module>
b=derivedset2('item1','item2') # DOESN'T WORK
TypeError: derivedset2 expected at most 1 arguments, got 2
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,您可以更改冻结集的构造函数,而对于可变集的构造函数则不可能.
我一直以为open并且io.open可以互换.
显然不是,如果我相信这个片段:
import ctypes, io
class POINT(ctypes.Structure):
_fields_ = [("x", ctypes.c_int),("y", ctypes.c_int)]
# THIS WORKS
with open("mypoints.bin", "wb") as f:
for i in range(10):
p = POINT(i,10-i)
print p.x, p.y
f.write(p)
# THIS FAILS
with io.open("mypoints.bin", "wb") as f:
for i in range(10):
p = POINT(i,10-i)
print p.x, p.y
f.write(p)
0 10
Traceback (most recent call last):
File "D:\test.py", line 10, in <module>
f.write(p)
File "c:\Python26\lib\io.py", line 1070, in write
self._write_buf.extend(b)
TypeError: 'POINT' object is not …Run Code Online (Sandbox Code Playgroud) 我有一个小片段,无法以莫名其妙的方式工作.
目的是生成两个或更多个序列的所有组合.
它在使用列表调用时有效,但在使用生成器调用时不起作用.
def comb(seqs):
if seqs:
for item in seqs[0]:
for rest in comb(seqs[1:]):
yield [item] + rest
else:
yield []
if __name__=="__main__":
x=[1,2]
y=[3,4]
print list(comb([x,y])) # prints [[1, 3], [1, 4], [2, 3], [2, 4]]
def gen1(): yield 1; yield 2
def gen2(): yield 3; yield 4
x=gen1()
y=gen2()
print list(comb([x,y])) # prints [[1, 3], [1, 4] WHY ????
Run Code Online (Sandbox Code Playgroud) python ×3
api ×1
file-io ×1
generator ×1
git ×1
immutability ×1
inheritance ×1
mercurial ×1
svn ×1