为什么x**4.0比快x**4?我正在使用CPython 3.5.2.
$ python -m timeit "for x in range(100):" " x**4.0"
10000 loops, best of 3: 24.2 usec per loop
$ python -m timeit "for x in range(100):" " x**4"
10000 loops, best of 3: 30.6 usec per loop
Run Code Online (Sandbox Code Playgroud)
我尝试改变我所提出的力量,看看它是如何动作的,例如,如果我将x提升到10或16的力量,它会从30跳到35,但如果我将10.0提升为浮动,它只是移动大约24.1~4.
我想它可能与浮点转换和2的幂有关,但我真的不知道.
我注意到在两种情况下,2的幂都更快,我想因为这些计算对于解释器/计算机而言更加原生/容易.但是,对于浮子,它几乎没有移动.2.0 => 24.1~4 & 128.0 => 24.1~4 但 2 => 29 & 128 => 62
在我的webpack.config.jsI中有3个单独的入口点,一个用于JS包,一个用于主SCSS包,另一个用于与主SCSS包无关的单独 SCSS包.
当我使用webpack.watch()API时,出于某种原因编辑JS源文件,不仅会导致重新编译JS包,还会导致2个SCSS包.
为什么会这样,以及如何停止此行为并确保仅重新编译已编辑的入口点?
这是一个问题的原因是我正在使用browsersync,对于CSS bundle重新编译我只是注入CSS而不是重新加载,但是在HTML/JS上编辑它的重新加载.但是,如果我编辑SCSS并且它还重新编译JS/HTML browsersync触发器重新加载而不是CSS注入.
我声明了一个布尔变量.例如,Boolean dataVal=null;
如果我执行以下代码段:
if(dataVal)
System.out.println("\n\NULL value in dataVal: "+dataVal);
else
System.out.println("\n\nvalue in dataVal: "+dataVal);
Run Code Online (Sandbox Code Playgroud)
我得到NullPointerException.嗯,我知道这很明显,但我需要知道这背后的原因.
如何在没有显式相对路径(../../../lib..)的情况下轻松引用模块中的其他目录?
我正在编写节点模块,我想在模块中重用一些全局内容.
最基本的 - 我想将模块的根路径设置为"全局",这样我就可以轻松地调用其他源,而无需使用大量相对路径../../和类似的东西.它可能会导致代码混乱,如果项目结构发生变化,很容易出错或错过它.
所以我在该帖子和其他一些库中看到了很多选项来处理这些事情(例如提供根路径的模块 - app-module-path,rootpath,rfr等)但是它们都引用了基础项目/应用程序,而不是其他人使用的模块.
设置全局是一个坏主意,我理解环境变量也不是一个好主意.
那件事有好的做法吗?也许有一些我没有找到或听说过的东西.
以下是我要避免的内容和我正在寻找的内容的示例:
// avoid things like that:
// ./lib/something/forthat/doit.js
var config = require('../../../config/project/type1/config.js');
// ./config/project/type1/config.js
module.exports = {
msg: 'hi'
};
// find somethings like that:
// when the root path/require can be found in every location of the module
// and is relative to my app and not the app using my module.
// ./lib/something/forthat/doit.js
var config = …Run Code Online (Sandbox Code Playgroud) 我使用multer来处理我的 Express 应用程序中的文件上传,并且还使用node-sspi进行ntlm身份验证。
使用curl上传文件时,一切正常。但是当我尝试用超级测试做同样的事情时,它不起作用。
Supertest 确实只适用于身份验证或上传,但我还没有成功地同时使用它们。
工作卷曲命令:curl -u user:pass --ntlm -F upload=@filename http://localhost
超级测试代码不起作用:
request(app)
.post('/upload')
.auth(username, password)
.attach('upload', fileToUpload)
.expect(200)
Run Code Online (Sandbox Code Playgroud)
如果我省略attach或auth- 它可以工作(当然我需要在服务器端禁用身份验证,但一般来说我可以上传)
那么,有人知道如何使用超级测试上传带有身份验证的文件吗?
还作为问题发布在supertest 的 GitHub上
如果我重载toString(),IntelliJ中的调试器将Object.toString()在变量选项卡中向我显示相关对象附近的结果.
如果toString超载return "Test1: This is toString overload";:
有时,我想在调试中看到的与一般toString过载不同.我知道可以为特定类型/类/等设置另一个表达式,但仅限于设置.
有没有办法(全局)设置一个任意函数名称,该函数名称优先于toString何时存在这样的函数?
例如:
如果Object.toDebuggerString()存在则使用它,否则 - 使用Object.toString().
class Test1 {
@Override
public String toString() {
return "Test1";
}
}
class Test2 {
@Override
public String toString() {
return "Test2";
}
public String toDebuggerString() {
return "Testing debugging mode";
}
}
Run Code Online (Sandbox Code Playgroud) 有没有办法可以向程序发送Ctrl+C信号tcl?
我有一个tcl code当我执行它时,在内部它应该通过Ctrl+C信号并打印类似的内容:
将“sent ctrl+c”放入同一文件中。
proc abc {
# Want to sent ctrl + c"
Here I want the command for ctrl+c
puts " sent ctrl+c"
}
Run Code Online (Sandbox Code Playgroud) 我正在为我的(小)程序编写单元测试,测试用例在大约30个不同的文件中指定.
为了测试它,我需要的只是一个遍历所有文件的循环,解析它们并执行所需的操作.
问题是,在这种情况下,我的所有测试都将被视为一个,因为它与@Test符号的功能相同.
有可能以某种方式拆分它而不必为每个测试文件分别设置一个函数吗?
作为一个测试用例的所有测试的问题是,我无法看到哪个测试用例失败了该过程; 如果一个失败,它就会失败(我会得到1个测试失败,而不是5/30失败)
我目前正在使用JUnit(4.12),但我没有义务继续使用它,所以如果有更好的解决方案,我可以切换框架.
谢谢!
例:
public class MyTests {
@Test
public void testFromFiles {
// loop through all the files
}
}
output: 1 test run successfully
Run Code Online (Sandbox Code Playgroud)
更新:所选答案对我来说很有用,我添加了另一个解决方案JUnit 5(而不是4),以防它可以帮助某人.
java ×3
node.js ×3
javascript ×2
browser-sync ×1
debugging ×1
express ×1
junit ×1
junit4 ×1
node-modules ×1
npm ×1
performance ×1
python ×1
python-3.5 ×1
python-3.x ×1
supertest ×1
tcl ×1
unit-testing ×1
webpack ×1