小编max*_*max的帖子

为什么 rebase 不允许修改合并提交?

如果当前提交是合并提交,为什么不git rebase -i HEAD~~将其包含在我可以修改的提交中?

文档在哪里rebase说不能修改合并提交?

这是一个简单的设置,显示了我的意思:

git init test_git
cd test_git
touch a
git add a
git commit -m "added a"
git branch feature
git checkout feature
echo "version 1" >a
git commit -a -m "version 1"
git checkout master
echo "version 2" >a
git commit -a -m "version 2"
git merge feature
echo "version 3" >a
git commit -a -m "resolved merge"
git rebase -i HEAD~~
Run Code Online (Sandbox Code Playgroud)

此时,我收到带有以下消息的文本编辑器:

pick 6746909 version 2
pick 830dbd0 version 1 …
Run Code Online (Sandbox Code Playgroud)

git

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

高效的冒泡排序

显然,这只是我用来理解Haskell的一个例子.我不打算使用冒泡排序进行排序,我也不打算通过二次算法中的列表来优化单个迭代.

当列表已经排序时,我希望停止冒泡排序.我编写了这段代码,bubble返回作为元组中的第二项,布尔状态告诉调用者是否进行了交换:

bubble (x:y:ys)
    | x > y = (y : fst (bubble (x:ys)), True)
    | otherwise = (x : fst (bubble (y:ys)), snd (bubble (y:ys)))
bubble x = (x, False)
bubblesort xs
    | snd (bubble xs) = bubblesort (fst (bubble xs))
    | otherwise = fst (bubble xs)
Run Code Online (Sandbox Code Playgroud)

在我熟悉的语言中,它会非常低效,因为如果没有明确的记忆bubble (y:ys),bubble xs它将被重新计算两次.但鉴于Haskell函数没有副作用,我可以假设编译器会优化重复的调用,使我的代码有效吗?

如果没有,那么编写高效冒泡排序的好方法是什么?

我已经看到检查列表是否排序的方法:

bubbleSort (x:y:xs) = if sorted thisSort then thisSort else bubbleSort thisSort
    where thisSort = (min x y) : bubbleSort …
Run Code Online (Sandbox Code Playgroud)

haskell

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

Goroutines vs asyncio任务+用于CPU绑定调用的线程池

goroutine大致相当于python的asyncio任务,还有一个额外的功能,即任何CPU绑定的任务都被路由到一个ThreadPoolExecutor而不是被添加到事件循环中(当然,假设我们使用没有GIL的python解释器)?

我失踪的两种方法之间有什么实质性的区别吗?当然,除了并发性是Go的一个组成部分所带来的效率和代码清晰度之外.

concurrency go coroutine python-3.x python-asyncio

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

忘记自我限定:如何抓住这个错误?

我理解为什么Python self在引用实例属性时需要显式限定符.

但我经常忘记它,因为我在C++中不需要它.

我用这种方式介绍的错误有时候很难捕捉到; 例如,假设我写

if x is not None:
    f()
Run Code Online (Sandbox Code Playgroud)

代替

if self.x is not None:
    f()
Run Code Online (Sandbox Code Playgroud)

假设属性x通常None,所以f()很少叫.并且假设f()仅产生微妙的副作用(例如,数值的改变,或清除缓存等).除非我有疯狂的单元测试,否则这个错误很可能会长时间被忽视.

我想知道是否有人知道编码技术或IDE功能可以帮助我捕获或避免这种类型的错误.

python debugging self

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

通过字符串引用类名?

我需要解析一些文本文件,为文本中遇到的各种实体创建对象,并将它们放在一些数据结构(例如,列表)中以供进一步处理.文字示例:

laptop
 17" dell, weight: 12 lb
desktop
 24" hp
Run Code Online (Sandbox Code Playgroud)

我事先知道文本中可能存在哪些实体,以及它们应该具有哪些属性.在这个例子中,我已经定义了笔记本电脑和桌面类(可能是类计算机的子类).解析器只需要创建对象laptop('dell',17,12)和dekstop('hp',24).

如果我遵循这条路线,我需要从字符串中检索类名,并创建这些类的对象.这是Pythonic的做事方式吗?如果是这样,最好的方法是什么(使用Python 3.1)?如果没有,我该怎么办呢?

谢谢!

什么

python string class

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

tkinter:显示方形网格

我正在尝试使用 tkinter 定期刷新方形网格。网格中的每个方块都涂上某种颜色(比如从给定的函数中获得);在每个正方形的中心,绘制一个较小的圆圈(颜色也是从函数中获得的)。

如果我必须从头开始做,也许有我可以使用的示例或标准配方?

user-interface tkinter python-3.x

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

python:`int`和`float`的组合

作为其他一些计算的一部分,我注意到我有时应用float()然后int()函数为整数输入.可以安全地假设:

int(float(x)) == x
Run Code Online (Sandbox Code Playgroud)

如果x是整数?

为什么?(或者为什么不呢?)它是否记录在任何地方?

python floating-point python-3.x

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

打印日期时间对象列表时覆盖默认格式

我有(在Python 3中):

print('event {} happened on these dates: {}'.format(event_name, date_list))
Run Code Online (Sandbox Code Playgroud)

date_list是一个datetime.date对象列表.我想改变格式:

事件A发生在[datetime.date(2011,5,31),datetime.date(2011,6,15)]

事件A发生在[2011-05-31,2011-06-15]

实现这一目标的最佳方法是什么?我希望我能继续使用这个format()功能,但我不知道怎么做.

python printing formatting python-3.x

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

将"无"的参数值与"无"的默认参数值区分开来

可能重复:
有没有办法知道参数的值是否是默认值与用户指定的值?
python - 返回默认值

Python中的标准做法是None用作默认参数值.

但是,如果客户端代码可以None用作合法参数值,则这种惯用法不会很好.在这种情况下,函数无法判断客户端代码是否省略了参数,或者是否显式传递了该参数None.这不好,除非(幸运的是)函数的行为在两种情况下都应该相同.

什么是好的解决方案?

python function python-3.x

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

为什么 Python 中的类型检查被认为是一个坏主意?

许多人都发表了这样的评论,但没有人给出它不好的原因。

还有什么方法可以捕获用户输入错误?等待其他地方的某些代码“抛出异常?” 为什么不立即捕获错误更好呢?

例如,(ab)用户输入 17.6 以获得预期的整数响应。这显然是一个错误,获取了预期类型​​类型(只是为了清楚?)。floatint

或者,假设该(ab)用户甚至输入 17/6 作为预期的float. 17/6一个float,因此如果等待数据到达实际使用的位置,则很难捕获此错误。

我不明白这个前提。

=========================== 以下是根据许多(非常好的)回复进行的编辑 - 感谢所有人!

首先,我相信所有编码风格都基于人们的意见,这些人已经学会根据他们遇到的一些错误提出这些意见。所以,是的,根据定义,由于这是一个编码风格的问题,所有答案都可能基于意见或导致那里的经验。

其次,我现在从评论中了解到,在函数中输入后测试类型。非常感谢您提供的示例和解释。

第三,正如许多评论所指出的那样,也许“类型测试不好”的意识形态应该在测试输入之后进行一些解释。这是我对我所做的搜索的许多回复中提出的笼统声明,试图测试在我的代码中获得的人工输入。

再次非常感谢你们分享的所有知识。

python typechecking

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