出于好奇,我想尝试emacs +邪恶.这是我到目前为止所做的:
在Windows 7上安装了emacs 24 - 进展顺利
创建了一个.emacs文件C:\Users\name\AppData\Roaming\
(其中.emacs.d结束)
在.emacs文件中添加了以下内容
(setq package-archives '(("ELPA" . "http://tromey.com/elpa/")
("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")))
Run Code Online (Sandbox Code Playgroud)
然后启动了emacs M-x package-list-packages
选择evil
,evil-leader
,evil-numbers
以i然后x安装
重启了emacs
Evil显示安装在package-list-packages中,邪恶文件存在.emacs.d\elpa
,但是当我启动emacs时似乎没有加载evil(<N>
状态栏中的No ).
只是从emacs开始.除了很多哔哔声之外,没有太大的帮助.想要开始简单并使用它几天,然后可能继续进一步扩展.
问题23:从列表中提取给定数量的随机选择的元素.
这是部分解决方案.为简单起见,此代码只从列表中选择一个元素.
import System.Random (randomRIO)
randItem :: [a] -> IO a
randItem xs = do
i <- randomRIO (0,length xs - 1)
return $ xs !! i
Run Code Online (Sandbox Code Playgroud)
所以randItem [1..10]
会IO Int
从1到10 返回一个对应于(但不等于)某个Int的对象.
到现在为止还挺好.但是我可以为randItem函数编写什么样的测试?我可以在输入和输出之间确定什么关系 - 如果有的话?
我可以使用与上述函数相同的逻辑来生成m Bool
,但我无法弄清楚如何测试m Bool
.谢谢.
我有一个pyproject.toml
与
[tool.poetry]
name = "my-project"
version = "0.1.0"
[tool.commitizen]
name = "cz_conventional_commits"
version = "0.1.0"
Run Code Online (Sandbox Code Playgroud)
我添加了一个新功能并使用提交消息进行提交
feat: add parameter for new feature
Run Code Online (Sandbox Code Playgroud)
这是一次承诺。
然后我打电话
commitizen bump
Run Code Online (Sandbox Code Playgroud)
Commitizen 将识别次要版本的增加,更新 my pyproject.toml
,并使用更新pyproject.toml
的标签再次提交0.2.0
。
这是第二次提交。
但现在我的pyproject.toml
“不正常”(假设我希望我的构建版本与我的 git 标签同步)。
[tool.poetry]
name = "my-project"
version = "0.1.0"
[tool.commitizen]
name = "cz_conventional_commits"
version = "0.2.0"
Run Code Online (Sandbox Code Playgroud)
我已经提交了两项,一项被标记了,但事情仍然不太正确。是否有工作流程可以让一切保持一致?
如果没有,那么函数的规范名称是什么?'循环'对我来说很有意义,但是已经采取了这种做法.
标题中的示例是为了清楚和简洁而编写的.我正在处理的真实案例有很多重复.(例如,我希望[1,1,0,0,0,1,1]"匹配"[0,0,2,1,1,1,0])
这种类型的东西模糊了我的算法,并用无用的重复填充我的代码.
我可以在vim中使用pudb(一个ncurses Python调试器),因为,例如,:!python %
在一个实际的终端窗口中运行.我更喜欢使用gvim,但gvim :!python %
在vim"哑终端"中运行.
有没有办法改变这种行为,所以gvim打开一个单独的命令终端?我想我记得过去以这种方式工作.
Python 3.3:我可以修饰一个函数来忽略所有与命名参数不匹配的位置参数吗?
import functools
def ignore_star_args():
def wrapper(function_):
@functools.wraps(function_)
def wrapped(*f_args):
return function_(/*only named args*/)
return wrapped
return wrapper
@ignore_star_args()
def list_args(a, b, *args):
# two positional arguments
return [a, b] + list(args)
>>> list_args(1, 2, "non-positional arg")
[1, 2]
Run Code Online (Sandbox Code Playgroud) setattr
将设置不能与常规属性访问一起使用的名称,即obj.name
.
>>> from types import SimpleNamespace
>>> my_instance = SimpleNamespace()
>>> setattr(my_instance, 'from', 0) # works
>>> getattr(my_instance, 'from')
0
>>> my_instance.from
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
如何检查这些名称,以避免使用它们?