似乎没有办法用另一个数组扩展现有的JavaScript数组,即模拟Python的extend方法.
我想实现以下目标:
>>> a = [1, 2]
[1, 2]
>>> b = [3, 4, 5]
[3, 4, 5]
>>> SOMETHING HERE
>>> a
[1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
我知道有一种a.concat(b)方法,但它创建了一个新的数组,而不是简单地扩展第一个.我想要一种算法,当a它明显大于b(即不复制的算法)时,它可以有效地工作a.
注意:这不是如何将某些内容附加到数组的副本? - 这里的目标是将一个数组的全部内容添加到另一个数组中,并"就地"执行,即不复制扩展数组的所有元素.
在文本文件中,有一个字符串"我不喜欢这个".
但是,当我把它读成字符串时,它变成了"我不喜欢这样".我明白\ u2018是"'"的unicode表示.我用
f1 = open (file1, "r")
text = f1.read()
Run Code Online (Sandbox Code Playgroud)
命令做阅读.
现在,是否有可能以这样的方式读取字符串:当它被读入字符串时,它是"我不喜欢这个",而不是像这样的"我不喜欢这样"?
第二次编辑:我看到有些人使用映射来解决这个问题,但实际上,是否没有内置转换可以将这种ANSI转换为unicode(反之亦然)转换?
我需要在Python中将一堆文件转换为utf-8,而我在"转换文件"部分时遇到了麻烦.
我想做相当于:
iconv -t utf-8 $file > converted/$file # this is shell code
Run Code Online (Sandbox Code Playgroud)
谢谢!
我目前正在使用angularjs编写一个Web应用程序,但我认为这个问题适用于在客户端进行路由的任何客户端javascript框架(如角度所做).
在单页面应用中,处理错误网址的正确方法是什么?
查看几个主要网站,如果您在https://mail.google.com/mail/下面输入任意随机网址,我会看到Gmail会重定向到收件箱.这发生在服务器端(使用http 300代码)或客户端,具体取决于错误路径是在#字符之前还是之后.另一方面,twitter显示任何无效URL的真实HTTP 404.第三种选择是显示"软"404,纯粹的客户端错误页面.
这些解决方案似乎适合不同的情况.Twitter希望Twitter用户和推文的链接是真实的链接,因此人们可以分享它们,在新闻文章中发布它们等,因此无效链接被识别是非常重要的(如果我的推文链接断开了)我的网站,一个简单的爬行会告诉我).另一方面,在gmail中,您不应该将链接分享到您的收件箱中,我甚至不确定链接是否真的是永久性/持久性的:似乎网址更新主要用于浏览器历史记录导航的目的.单页应用.给出软错误的第三种方法可能适用于类似于gmail的情况,但是没有合理的"默认"页面.
经过这么长时间的介绍,这里有一些具体的问题:
javascript singlepage http-status-code-404 angularjs single-page-application
如何从指令公开方法?我知道我应该使用数据属性,但我真的想暴露行为,而不是数据.父控制器可以调用的东西.
假设我的DOM看起来像:
<div ng-app="main">
<div ng-controller="MyCtrl">
<button ng-click="call()" >Call</button>
<div id="container" my-directive> </div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
angular.module("main", []).controller("MyCtrl", function($scope) {
$scope.call = function() {
$scope.myfn();
};
}).directive("myDirective", function() {
return {
// scope: {},
controller: function($scope) {
$scope.myfn = function() {
console.log("myfn called");
}
}
};
});
Run Code Online (Sandbox Code Playgroud)
jsFiddle:http://jsfiddle.net/5gDjQ/7/
如果scope被注释掉(即指令没有隔离范围),它就可以正常工作.当我按下按钮时,myfn会调用并登录到控制台.
一旦我取消注释scope,它就不起作用.myfn是在子范围上定义的,父母不容易获得.
在我的情况下,我认为污染父范围是一个坏主意,我真的想避免它.
那么,我如何将一个函数从指令暴露给父控制器?或者:如何从父控制器调用指令上的方法?
我刚读完"Nutshell中的C#4.0"(O'Reilly),我认为这对于愿意转向C#的程序员来说是一本好书,但它让我感到疑惑.我的问题是using声明的定义.根据这本书(第138页),
using (StreamReader reader = File.OpenText("file.txt")) {
...
}
Run Code Online (Sandbox Code Playgroud)
恰好相当于:
StreamReader reader = File.OpenText("file.txt");
try {
...
} finally {
if (reader != null)
((IDisposable)reader).Dispose();
}
Run Code Online (Sandbox Code Playgroud)
但是,假设这是真的,并且此代码在单独的线程中执行.此线程现在已中止thread.Abort(),因此ThreadAbortException抛出a并假设线程正好在初始化读取器之后和输入try..finally子句之前.这意味着读者不会被处置!
一种可能的解决方案是以这种方式编码:
StreamReader reader = null;
try {
reader = File.OpenText("file.txt");
...
} finally {
if (reader != null)
((IDisposable)reader).Dispose();
}
Run Code Online (Sandbox Code Playgroud)
这将是中止安全的.
现在我的问题:
using声明是不是中止安全还是错误,它的行为与我的第二个解决方案相似?using等同于第一方案(不放弃安全的),为什么它检查null的finally?ThreadAbortException可以在托管代码中的任何位置抛出.但也许有例外,第一个变种毕竟是中止安全的?编辑:我知道使用thread.Abort()不被认为是好习惯.我的兴趣是纯粹的理论:如何在using声明中表现究竟?
如何以最简单的方式区分Windows XP和Windows Vista,使用Python和pywin32或wxPython?
基本上,如果当前操作系统是Vista,我需要一个被调用的函数返回True:
>>> isWindowsVista()
True
Run Code Online (Sandbox Code Playgroud) example.py:
'''
demo too many ancestors
'''
from flask_security.forms import RegisterForm
from wtforms.fields import TextField
class ExtendedRegisterForm(RegisterForm):
'''An extended register form'''
name = TextField('Name', [])
Run Code Online (Sandbox Code Playgroud)
当我运行pylint时:
$ pylint -r n example.py
************* Module example
R: 7, 0: Too many ancestors (10/7) (too-many-ancestors)
Run Code Online (Sandbox Code Playgroud)
这是什么意思,我该如何解决?
嘿所有我遇到什么,我认为将是一个常见的路由问题,但我无法找出一个解决方案.基本上我的页面有两种状态,基本和高级,我希望两种状态的URL模式相同,但只加载当前状态的模板(从控制器内转换到)
config(function ($stateProvider) {
$stateProvider.state('basic', {
url: '/:post',
templateUrl: function (stateParams) {
return 'post-' + stateParams.post + '-tmpl.html';
}
});
$stateProvider.state('advanced', {
url: '/:post',
templateUrl: function (stateParams) {
return 'post-' + stateParams.post + '-advanced-tmpl.html';
}
});
})
controller('myCtrl', function ($state) {
//
// In this case, I would expect only the template from
// the advanced state to load, but both templates are trying
// to load.
$state.transitionTo('advanced', {post: 2});
}
Run Code Online (Sandbox Code Playgroud)
我假设导航到匹配的模式会加载给定的状态,这就是为什么当它匹配时,两个模板都会尝试加载.有没有办法完成相同的网址模式,但只使用基于当前状态的不同模板?
我想在mysql控制台中选择我的特定数据库,但问题是我的数据库名称之间有空格而mysql忽略空格后的部分.例如,当我发出命令时:
use 'student registration'
Run Code Online (Sandbox Code Playgroud)
我收到消息:
cannot find database 'student'
Run Code Online (Sandbox Code Playgroud)