小编Can*_*ic3的帖子

在`git pull origin <remote-branch>:<local-branch>`中使用冒号不会拉到正确的分支?

假设我在一个不同的 分支上,而不是<local-branch>被称为<different-branch>.

当我尝试从远程分支拉到本地分支时,我执行以下操作:

git pull origin <remote-branch>:<local-branch>
Run Code Online (Sandbox Code Playgroud)

而且,从我的理解,这应该拉入我的<local-branch>,而不是拉入<different-branch>.

但是,当我git log在上班时检查时<different-branch>,我看到那些提交来自<remote-branch>

当本地分支与我当前所在的分支不同时,如何从远程分支拉入本地分支?谢谢.

git version-control github git-pull git-merge

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

如何在Python中编写用于变量分配的unittest?

这是在Python 2.7。我有一个名为的类class A,并且有一些属性由用户设置时会引发异常:

myA = A()
myA.myattribute = 9   # this should throw an error
Run Code Online (Sandbox Code Playgroud)

我想写一个unittest确保它引发错误的代码。

创建测试类并继承后unittest.TestCase,我尝试编写如下测试:

myA = A()
self.assertRaises(AttributeError, eval('myA.myattribute = 9'))
Run Code Online (Sandbox Code Playgroud)

但是,这引发了syntax error。但是,如果尝试eval('myA.myattribute = 9'),它将抛出属性错误,应有的错误。

如何编写单元测试以正确测试?

谢谢。

python unit-testing python-2.7 python-unittest

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

为什么发电机更快?

我知道生成器比迭代器更快.我也明白可以使用for循环语法实现生成器.例如:

    import time 


startT = time.time()


def myGen(n):
    for i in range(n):
        yield x         


def myIter(n):
    for i in range(n):
        pass

def main():
    n=100
    startT=time.time()
    myIter(n)
    print 'myIter took ', time.time() - startT

    startT=time.time()
    myGen(n)
    print 'myGen(n) took ', time.time() - startT
Run Code Online (Sandbox Code Playgroud)

这只是结果的一个例子:

myIter took 0.09234782
myGen(n) took 0.017847266
Run Code Online (Sandbox Code Playgroud)

因为这使用for循环语法,所以我不明白它是如何比迭代器更快.这个生成器使用迭代器,因为"for"循环是使用迭代器实现的.如果你计算时间,发电机一直更快.当生成器使用迭代器时,为什么会这样?

谢谢.

python iterator generator

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

如何将正则表达式匹配作为整个字符串返回?

我想匹配电话号码,并返回整个电话号码,但只返回数字.这是一个例子:

(555)-555-5555
555.555.5555
Run Code Online (Sandbox Code Playgroud)

但我想使用正则表达式只返回:

5555555555
Run Code Online (Sandbox Code Playgroud)

但是,由于某种原因,我无法获得要返回的数字:

import re
phone_number='(555)-555-5555'

regex = re.compile('[0-9]')
r = regex.search(phone_number)
regex.match(phone_number)
print r.groups()
Run Code Online (Sandbox Code Playgroud)

但由于某种原因它只打印一个空元组?我在这里失踪的显而易见的事情是什么?谢谢.

python regex

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

断言如何影响Python中的变量赋值?

我在Python 2.7中遇到列表别名或变量赋值的问题.我将向您展示一个最小的例子.有和没有断言两种不同的结果,我不知道断言为什么/如何影响这一点.

不知何故,当我向object_list下面显示的内容添加时,它会覆盖一个属性:

class Object1(object):                                                                                 

    def __init__(self):                                                                                    
        self.object_list = []  

    def add_thing(self, thing):                                                                                          
        # this next line makes all the difference
         assert thing.name not in [thing.name for thing in self.object_list], 'agent id already exists, use another one'
        self.object_list.append(thing)

class Thing(object):

    def __init__(self, name):
        self.name = name

    def __repr__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

这是一个最小的例子:

随着断言

mfd = Object1()
myAgent = Thing('blah')
myAgent_2 = Thing('blew')

mfd.add_thing(myAgent)
mfd.add_thing(myAgent_2)

print mfd.object_list

>> [blah, blah]
Run Code Online (Sandbox Code Playgroud)

没有断言

mfd = Object1()
myAgent = …
Run Code Online (Sandbox Code Playgroud)

python assert list assertions python-2.7

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

写入文件时fprintf不像printf吗?

我查看了文档:

在这里说:

成功打开文件后,您可以使用fscanf()从中读取文件或使用fprintf()写入文件.这些函数就像scanf()和printf()一样工作,除了它们需要一个额外的第一个参数,一个FILE*用于读/写文件.

所以,我这样编写了我的代码,并确保包含一个条件语句以确保文件打开:

# include<stdio.h>
# include<stdlib.h>

void from_user(int*b){

    b = malloc(10);
    printf("please give me an integer");
    scanf("%d",&b);

}

void main(){

    FILE *fp;

    int*ch = NULL;
    from_user(ch);
    fp = fopen("bfile.txt","w");

    if (fp == NULL){
        printf("the file did not open");
    }
    else {
        printf("this is what you entered %d",*ch);
        fprintf(fp,"%d",*ch);  
        fclose(fp);
        free(ch);   
    }
}
Run Code Online (Sandbox Code Playgroud)

我错了还是文档没有正确解释?谢谢.

c c++ linux file-io printf

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