s = [1,2,3,4,5,6,7,8,9]
n = 3
zip(*[iter(s)]*n) # returns [(1,2,3),(4,5,6),(7,8,9)]
Run Code Online (Sandbox Code Playgroud)
zip(*[iter(s)]*n)
工作怎么样?如果用更详细的代码编写它会是什么样子?
我想运行一些命令,在按下Ctrl-C之前,每个命令都不会退出.有什么我可以运行同时运行所有这些,Ctrl-C将退出它们吗?他们可以共享终端输出.
具体来说,我有罗盘编译器,coffeescript编译器和一个自定义命令,它监视文件更改所有正在运行的文件更改.我不想为每个命令加载终端.
我理解如何使用weak_ptr
和shared_ptr
.我shared_ptr
通过计算其对象中的引用数来理解它是如何工作的.weak_ptr
工作怎么样?我尝试阅读boost源代码,并且我不熟悉boost以了解它使用的所有内容.
谢谢.
是否有更复杂的语法写作方式?
gen = (i for i in xrange(10))
index = 5
for i, v in enumerate(gen):
if i is index:
return v
Run Code Online (Sandbox Code Playgroud)
生成器应该有一个gen[index]
表达式,作为一个列表,但在功能上与上面的代码完全相同似乎是很自然的.
我正在学习Haskell并试图理解Monads.我有两个问题.
据我所知,Monad只是另一个类型类,它声明了与"容器"内部数据交互的方式,包括Maybes,Lists和IOs.用一个概念实现这三个东西似乎很聪明和干净,但实际上,关键在于在一系列函数,容器和副作用中可以进行干净的错误处理.这是正确的解释吗?
其次,副作用问题究竟是如何解决的?使用容器的这个概念,语言基本上说容器内的任何东西都是非确定性的(例如i/o).因为列表和IO都是容器,所以列表与IO等价,尽管列表中的值对我来说似乎非常确定.那么什么是确定性的,有什么副作用?我无法理解一个基本值是确定性的想法,直到你把它放在一个容器中(这与它旁边的一些其他值没有特殊值相同,例如Nothing)它现在可以是随机的.
有人可以直观地解释Haskell如何通过输入和输出来改变状态?我没有看到这里的魔力.
我有一个C++ Windows程序.我有一个包含一些数据的文本文件.目前,文本文件是一个单独的文件,它在运行时加载并进行解析.如何将它作为资源嵌入到二进制文件中?
我发现自己经常做以下事情:
attr = getattr(obj, 'attr', None)
if attr is not None:
attr()
# Do something, either attr(), or func(attr), or whatever
else:
# Do something else
Run Code Online (Sandbox Code Playgroud)
有更多的pythonic写作方式吗?这是否更好?(至少没有表现,IMO.)
try:
obj.attr() # or whatever
except AttributeError:
# Do something else
Run Code Online (Sandbox Code Playgroud) 我发现了一些类似的问题(这里,这里,这里),询问是否将文档存储到版本控制中.我有一个更具体的要求和一般性问题.具体要求是我想使用Git.更一般的问题是,如何将文档(用于项目的设计,测试,一般实践,技巧等)存储在Git中?更广泛地说,应该存储哪些文件?
我可以想到几个方面:
应该如何存储视觉效果?他们首先应该创作什么?我正在Linux环境中开发,但项目中的其他一些参与者都在Windows上.哪种跨平台解决方案类似于Visio?当然,它不应该创建存储到Git中的二进制文件.那怎么会与文件相关呢?(例如,类似于Latex在编译时可以引用其他图表.)
>>> class A(object): pass
>>> def func(cls): pass
>>> A.func = func
>>> A.func
<unbound method A.func>
Run Code Online (Sandbox Code Playgroud)
这个赋值如何创建一个方法?对于类,赋值执行以下操作似乎不直观:
classmethod()
类方法中(实际上,这非常直观)staticmethod()
函数中似乎第一个应该有一个instancemethod()
,而对于最后一个,根本不应该有一个包装函数.我知道这些是用于class
块内的用途,但为什么它们应用于它之外呢?
但更重要的是,如何将函数分配到一个类中?什么魔法可以解决这3件事?
更令人困惑的是:
>>> A.func
<unbound method A.func>
>>> A.__dict__['func']
<function func at 0x...>
Run Code Online (Sandbox Code Playgroud)
但我认为在检索属性时,这与描述符有关.我不认为这与设置属性有很大关系.