小编jia*_*amo的帖子

python3:在课堂上的singledispatch,如何调度自我类型

使用python3.4.在这里我想使用singledispatch在__mul__方法中调度不同类型.像这样的代码:

class Vector(object):

    ## some code not paste  
    @functools.singledispatch
    def __mul__(self, other):
        raise NotImplementedError("can't mul these type")

    @__mul__.register(int)
    @__mul__.register(object)                # Becasue can't use Vector , I have to use object 
    def _(self, other):
        result = Vector(len(self))           # start with vector of zeros
        for j in range(len(self)):
            result[j] = self[j]*other
        return result

    @__mul__.register(Vector)                # how can I use the self't type
    @__mul__.register(object)                # 
    def _(self, other):
        pass # need impl 
Run Code Online (Sandbox Code Playgroud)

正如你可以看到代码,我想要支持Vector*Vertor,这有名称错误

Traceback (most recent call last):
  File "p_algorithms\vector.py", line …
Run Code Online (Sandbox Code Playgroud)

python types class dispatch python-3.4

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

C++ 11获取unordered_map中一个存储桶的所有项

我们知道std::unordered_map::bucket返回一个bucket是容器内部哈希表中的一个槽,根据键的哈希值为其分配元素.如何在返回桶中获取begin-iterator和end-iterator?换句话说,我可以bucket_count用来计算桶数,如何检测每个桶中的物品?

unordered-map c++11

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

boto3 或 IAM 角色无法访问由 CloudFront Origin Access Identity 签名的 url 上传的文件?

我接着是私有的cloudfront文档http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-restricting-access-to-s3.html#private-content-granting-permissions-to-oai文件。

存储桶策略如下所示:

{  
"Version": "2008-10-17",  
"Id": "PolicyForCloudFrontPrivateContent",  
"Statement": [  
    {  
        "Sid": "1",  
        "Effect": "Allow",  
        "Principal": {  
            "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity XXXXXXXXX"  
        },  
        "Action": "s3:*",  
        "Resource": "arn:aws:s3:::XXXXXX/*"  
    }  
]  
}
Run Code Online (Sandbox Code Playgroud)

当我通过带有密钥对的签名网址上传文件时。文件所有者是

Owner CloudFront Origin Access Identity *********
Run Code Online (Sandbox Code Playgroud)

目前,我无法在 ec2 中使用 boto3。命令

aws s3 cp s3::/xxx/uploadfile test.txt 
Run Code Online (Sandbox Code Playgroud)

给我一个错误:

fatal error: An error occurred (403) when calling the HeadObject operation: Forbidden
Run Code Online (Sandbox Code Playgroud)

我可以上传不使用签名网址的文件。这些文件可以通过 boto3 正常访问。这些文件的所有者是

 ****MyCountName***** 
Run Code Online (Sandbox Code Playgroud)

所以我不明白为什么ec2机器无法读取origin access identity文件?

amazon-s3 amazon-web-services amazon-cloudfront boto3

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

hiredis c socket

reply = redisCommand(rcontext,"HGET %u %u",env->cr[3] ,KeyHandle);
if(reply == NULL)
{
printf("in preNtDeletKey rediscommand error ! and the err type is %d the string is %s \n" ,rcontext->err,rcontext->errstr)";
}
Run Code Online (Sandbox Code Playgroud)

这里我得到一个错误,回复返回NULL输出

在preNtDeletKey rediscommand错误!并且err类型为1,字符串是Interrupted system call

我在我的项目中使用它.而且我在hiredis源中找不到中断系统调用我想知道导致系统调用中断的原因是什么hiredis将字符串写入redisContext(因为我在sourec中找不到)

我们如何避免中断系统调用?

c redis

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

python在路径中使用wildchar执行shell命令

ls 
[cc]a.txt bba.txt [cc]b.txt bbb.txt

ipython

glob.glob("[cc]*")
[]
glob.glob("bb*")
['bba.txt','bbb.txt']
glob.glob("[bb]*")
['bba.txt','bbb.txt']
Run Code Online (Sandbox Code Playgroud)

如何获得[cc]a.txt[cc]b.txt匹配?炭[[bb]*似乎就没有任何意义.使用如下:

glob.glob("\[cc\]*")
[]
Run Code Online (Sandbox Code Playgroud)

也是NULL

python regex shell path

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

为什么不能在递归函数中使用yield

我正在使用递归来获取列表的排列.这是我写的,但yield版本不起作用:

def test_permutation_rec():
    print "test 2"
    permutation_rec2([1,2,3],[])     
    print "test 1"
    for one in permutation_rec1([1,2,3],[]):
        print "one:",one 

def permutation_rec1(onelist,prelist):  
    if onelist == [] :
        print prelist
        yield prelist

    lenlist= len(onelist)
    for i, oneitem in enumerate(onelist) :
        leftlist = [onelist[j] for j in range(0,lenlist) if j != i]
        permutation_rec1(leftlist,prelist + [oneitem])

def permutation_rec2(onelist,prelist):
    if onelist == [] :
        print prelist

    lenlist= len(onelist)
    for i, oneitem in enumerate(onelist) :
        leftlist = [onelist[j] for j in range(0,lenlist) if j != i]
        permutation_rec2(leftlist,prelist …
Run Code Online (Sandbox Code Playgroud)

python algorithm recursion yield generator

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