我正在设计一个小型库,并试图尽可能地保持API,使用函数作为字典/对象本身的想法看起来很吸引人.
这个想法是能够通常调用一个函数:
fn('hello', 'some other extra info to be processed', etc...)
Run Code Online (Sandbox Code Playgroud)
此调用将处理信息,然后将其存储在某处.可以在某些条件下访问此处理过的信息(不是典型的用例),以这种方式获取信息会很棒:
fn['hello']
//-> some stuff
Run Code Online (Sandbox Code Playgroud)
例如,在python中,[]运算符重载会非常容易,但是AFAIK在JS中没有一种简单可靠的方法可以在大多数环境中工作(代理似乎可以做到这一点,但我们还没有到目前为止).由于用户可以输入任何值,因此不能选择getter和setter.
因此,我留下了函数对象的设置属性,这似乎很糟糕,因为我可能会覆盖函数的原始属性,例如:
applyprototype__proto__然而,JS世界中的许多东西都是hacky,我们很乐意每天都这样做.问题是:这是不安全的,会导致数千只小猫死亡吗?
我有一个小而相当标准的应用程序:
DS.hasMany属性.app控制器处理一个save事件,然后我存储了这些东西.代码如下所示:
import Ember from 'ember';
export default Ember.Controller.extend({
actions: {
save() {
this.store.peekAll('object').forEach(obj => {
obj.save();
});
}
}
});
Run Code Online (Sandbox Code Playgroud)
这会为本地加载的每个对象发出PUT请求.它工作正常,但它有点蛮力.相反,我想只保存修改过的对象.
我已尝试使用dirtyType,但它返回的undefined内部.forEach,还有hasDirtyAttributes,但它false总是返回.
我可以构建自己的修改对象缓存,但这将是很多工作和容易出错.有没有处理这种情况的标准方法?提前致谢.
我知道如何创建简单的别名,但是有一个非常有用的命令可以从磁盘中取消暂存已删除的文件,但我无法使其工作。
git rm $(git ls-files --deleted)
(从这里Removing multiple files from a Git repo that has been removed from disk)
我试过:
git config --global alias.cleandeleted 'rm $(git ls-files --deleted)'
Run Code Online (Sandbox Code Playgroud)
但是当我写:
git cleandeleted
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
error: unknown option `deleted)'
usage: git rm [options] [--] <file>...
-n, --dry-run dry run
-q, --quiet do not list removed files
--cached only remove from the index
-f, --force override the up-to-date check
-r allow recursive removal
--ignore-unmatch exit with a zero status even if nothing …Run Code Online (Sandbox Code Playgroud) 我想检查一个单词是否有尾随分号。我有一个长字符串中单词的位置,我想检查该位置的字符是否start of word + length of word是:。该单词可能是字符串中的最后一个单词,因此尝试获取下一个字符将引发IndexException
我有三个想法:
1)检查我们是否不在字符串的末尾,然后检查它是否不是分号
semicolon_pos = pos_word + len(word) # Possible position
if semicolon_pos < len(long_string) and long_string[semicolon_pos] == ':':
# do something...
else:
# do something else
Run Code Online (Sandbox Code Playgroud)
不是通常认为的 pythonic
2) Try- except 分号提取和分号的等式
semicolon_pos = pos_word + len(word) # Possible position
try:
if long_string[semicolon_pos] == ':':
# Do something
else:
# do something else (which is the same as in the except clause)
except IndexError:
# do something else …Run Code Online (Sandbox Code Playgroud) javascript ×2
alias ×1
control-flow ×1
ember-data ×1
ember.js ×1
exception ×1
git ×1
python ×1