假设我在一个不同的 分支上,而不是<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>?
当本地分支与我当前所在的分支不同时,如何从远程分支拉入本地分支?谢谢.
这是在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'),它将抛出属性错误,应有的错误。
如何编写单元测试以正确测试?
谢谢。
我知道生成器比迭代器更快.我也明白可以使用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"循环是使用迭代器实现的.如果你计算时间,发电机一直更快.当生成器使用迭代器时,为什么会这样?
谢谢.
我想匹配电话号码,并返回整个电话号码,但只返回数字.这是一个例子:
(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 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) 我查看了文档:
它在这里说:
成功打开文件后,您可以使用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)
我错了还是文档没有正确解释?谢谢.