小编pet*_*bel的帖子

Java调用方法时可以省略this吗?

我对 Java (6/7/8) 语法有一个愚蠢的问题 - 这两个方法调用片段总是等效的吗?

  1. this

    this.myMethod(4);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 没有this

    myMethod(4);
    
    Run Code Online (Sandbox Code Playgroud)

注意:当然,问题是关于参数的每个数字、类型和组合

较弱的语句:给定程序P,我可以仅通过在每个方法调用前面P'删除来创建程序吗?this.

我考虑了本地类、匿名类、内部类和各种继承,但没有发现任何矛盾。所以我相信这两个片段实际上是相同的。不幸的是我无法找到任何合适的证明(例如来自官方语法)。

你能通过反证证明我错了,或者给我一些构建等价证明的线索吗?多谢。

编辑:等价被证明是错误的(见下面的评论)那较弱的陈述呢?

java methods grammar this invoke

5
推荐指数
1
解决办法
2753
查看次数

写自己的oh-my-zsh插件

我想编写一个简单的插件来oh-my-zsh完成可能的服务器参数.

例1:

$ myserver st    # hits tab
start stop
Run Code Online (Sandbox Code Playgroud)

例2:

$ myserver    # hits tab
start stop restart
Run Code Online (Sandbox Code Playgroud)

根据维基,我创建了以咖啡插件的~/.oh-my-zsh/custom/plugins/myserver/myserver.plugin.zsh示例内容命名的文件(我也尝试过brew插件)但是completition不起作用(文件中描述的任何内容).而且抛出错误:

_arguments:comparguments:312: can only be called from completion function
Run Code Online (Sandbox Code Playgroud)

我检查了类似的问题和我的fpath包括~/.oh-my-zsh/custom/plugins/myserver.

我错过了什么?这应该很简单......谢谢你的帮助

plugins zsh oh-my-zsh

5
推荐指数
1
解决办法
3946
查看次数

如何通过python3 cpikle和python3 pickle读取序列化数据?

我正在尝试使用包含python特殊版本的CIFAR-10数据集.

它是一组二进制文件,每个文件代表10k numpy矩阵的字典.这些文件显然是由python2创建的cPickle.

我试着从python2加载它,如下所示:

import cPickle
with open("data/data_batch_1", "rb") as f:
    data = cPickle.load(f)
Run Code Online (Sandbox Code Playgroud)

这真的很棒.但是,如果我尝试从python3加载数据(没有,cPickle而是pickle替代),它会失败:

import pickle
with open("data/data_batch_1", "rb") as f:
    data = pickle.load(f)
Run Code Online (Sandbox Code Playgroud)

如果失败并出现以下错误:

UnicodeDecodeError: 'ascii' codec can't decode byte 0x8b in position 6: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式将原始数据集转换为可从python3读取的新数据集吗?或者我可能以某种方式从python3直接读取它?

我已经尝试加载它cPickle,将其转储json并读回来pickle,但是numpy矩阵显然不能写成json文件.

python serialization pickle python-2.7 python-3.x

5
推荐指数
1
解决办法
2881
查看次数

如何在 APIv3 中列出稍后观看列表?

自 2016 年 9 月 15 日 youtube APIv3修订以来,无法找到稍后观看列表 idchannels.contentDetails.relatedPlaylists.watchLater,因为它包含固定字符串WL

修订稿指出:

...

频道资源的 contentDetails.latedPlaylists.watchHistory 和 contentDetails.latedPlaylists.watchLater 属性现在分别包含所有频道的 HL 和 WL 值。

需要明确的是,这些属性仅对检索有关用户自己的频道的数据的授权用户可见。这些属性始终包含值 HL 和 WL,即使对于检索有关用户自己的频道的数据的授权用户也是如此。因此,无法通过 API 检索观看历史记录和稍后观看播放列表 ID。

...

最后一部分非常有趣,因为我无法想象如何获取我的 WL id,因此我无法列出我稍后保存的视频。

我还检查了reddit和其他 SO 问题(),但没有成功。他们通常在提到的修订之前建议使用 v2 或 v3。

问题:如何获取稍后观看视频的 id?

youtube youtube-api youtube-data-api

5
推荐指数
1
解决办法
901
查看次数

如何将constexpr作为模板参数传递?

我有一个模板化的类MyClass,我想为各种参数运行它,以便测量一些值.我知道编译之前的确切参数因此我认为必须有一种方法来实现目标.

我的代码到目前为止:

template <int T>
class MyClass { /*...*/ };


constexpr int PARAMS[] = {1,2,3 /*, ...*/};
for (constexpr auto& t: PARAMS) {
    MyClass<t> myClass;
    // ... do sth
}
Run Code Online (Sandbox Code Playgroud)

但是编译器(gcc v4.9.2,C++ 11)不接受这一点.我也试过使用const而不是constexpr哪个也不行.

有可能是这样的吗?我真的根本不想使用宏.

c++ templates constexpr c++11

3
推荐指数
1
解决办法
1628
查看次数

在Python中从列表中多次使用生成器

基本上,我正处于以下情况 - 我生成一个列表,例如

l = [2*x for x in range(10)]
Run Code Online (Sandbox Code Playgroud)

我稍后会多次迭代,例如

for i in l: print i    # 0,2,4,6,8,10,12,14,16,18
for i in l: print i    # 0,2,4,6,8,10,12,14,16,18
for i in l: print i    # 0,2,4,6,8,10,12,14,16,18
Run Code Online (Sandbox Code Playgroud)

问题是列表太大而无法放入内存,因此我使用它的生成器形式,即:

l = (2*x for x in range(10))
Run Code Online (Sandbox Code Playgroud)

但是,在此构造之后,只有第一次迭代才有效:

for i in l: print i    # 0,2,4,6,8,10,12,14,16,18
for i in l: print i    #
for i in l: print i    #
Run Code Online (Sandbox Code Playgroud)

问题出在哪儿?我怎么可以多次迭代它?

python list generator

2
推荐指数
1
解决办法
73
查看次数

多平台 getResourceAsStream

我应该使用什么文件分隔符来指定资源的路径?我运行打包的程序java -jar program.jar

目前我使用以下加载

 inputStream = getClass.getResourceAsStream(
                   File.separator + "resources" + File.separator + "my.class");
Run Code Online (Sandbox Code Playgroud)

在 linux 上,它被正确评估为/resources/my.class并加载了类。但是,在 WindowsNullPointerException上抛出了 a 。正确的用法是什么?我非常需要我的程序是多平台的。

我有点困惑,因为文档通知路径可能以/不是 Windows 分隔符的开头。

java unix windows path separator

2
推荐指数
1
解决办法
154
查看次数

Python中基于令牌的编辑距离?

我熟悉python的nltk.metrics.distance模块,它通常用于计算两个字符串的编辑距离.

我感兴趣的是一个函数,它计算这样的距离,但不像通常那样以字符方式表示.我的意思是你只能替换/添加/删除整个令牌(而不是chars).

常规编辑距离和我想要的标记化版本的示例:

> char_dist("aa bbbb cc",
            "aa b cc")
3                              # add 'b' character three-times

> token_dist("aa bbbb cc",
             "aa b cc")
1                              # replace 'bbbb' token with 'b' token
Run Code Online (Sandbox Code Playgroud)

是否已经有一些功能,可以token_dist在python中计算?我宁愿使用已经实现和测试过的东西而不是编写我自己的代码.谢谢你的提示.

python edit-distance nltk

2
推荐指数
2
解决办法
3371
查看次数

如何遍历列表,获取每个可能的值对?

我如何遍历list(数字)并获取其每一对可能的值?

示例(java):

for(int i = 0; i < 5; i++)
    for(int j = i+1; j < 5; j++)
        print(i, j); // 01, 02, 03, 04, 12, 13, 14, 23, 24, 34
Run Code Online (Sandbox Code Playgroud)

我的问题是列表是通过生成器函数获取的,因此它是懒惰的.此外,它可能非常大,因此将所有对保留在内存中不仅仅是绝望的解决方案.

所以最后一个问题 - 如何在python中实现相同的行为,记住内存是有限的?还应该复杂不超过O(N^2)哪里N是的长度list.

python iteration list generator

1
推荐指数
1
解决办法
115
查看次数

如何在R中绘制行方式矩阵?

我有matrix8列.对于每一行,我想绘制一个单一的箱图.我更喜欢箱形图在一个地块中.因此,以下示例应生成4个箱图(每个8个值) - 全部在单个图像中.

数据示例:

> data[2:5,]
     [,1] [,2] [,3]      [,4]      [,5]      [,6]      [,7]      [,8]     
[1,] 0.6  0.5  0.5357143 0.5357143 0.5357143 0.5357143 0.5357143 0.5185185
[2,] 0.5  0.5  0.5357143 2.5357143 0.5357143 0.5357143 0.5357143 0.5185185
[3,] 0.5  0.7  0.5357143 0.5357143 0.5357143 0.5357143 0.5357143 0.5185185
[4,] 0.5  0.5  1.5357143 0.5357143 0.5357143 0.5357143 0.5357143 0.5185185
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试过:

> boxplot(data[2:5,])
Error in sort.int(x, na.last = na.last, decreasing = decreasing, ...) : 
  'x' must be atomic
Run Code Online (Sandbox Code Playgroud)

这个方法来自这个SO帖子:

> boxplot(as.list(as.data.frame(data[2:5,])))
Error in sort.int(x, na.last = …
Run Code Online (Sandbox Code Playgroud)

r matrix boxplot

1
推荐指数
1
解决办法
1019
查看次数