小编kpo*_*ter的帖子

Monkey Patching Exception类和其他内置类

无论Excpetion类型如何,我都希望在发生异常时打印消息.

我尝试了以下方法:

class MyException(BaseException):
  def __init__(self, msg):
    super(BaseException, self).__init__(msg)
    print "Howdy", msg

__builtins__.Exception = MyException

try:
  raise IOError("world")
except Exception as e:
  pass
Run Code Online (Sandbox Code Playgroud)

我期待打印"Howdy world",但我什么都没得到.

编辑:

@helmut建议使用sys.settrace,以下代码按预期工作.

import sys

def trace(frame, event, arg):
    print event
    return trace

sys.settrace(trace)

def foo():
    raise Exception()

def bar():
    foo()

def baz():
    try:
        bar()
    except:
        pass

baz()

exit()
Run Code Online (Sandbox Code Playgroud)

太糟糕了,这对我的用例来说太慢了.

python

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

将分支折叠为一个提交

基本上我一直在研究一个功能,但是当我将该功能推回到主仓库以进行代码审查时,他们喜欢整个功能被推送为一次提交.我通常使用git rebase -i这个并设置除第一次提交以外的所有内容和第一次编辑.然后我会在每次发生冲突时粘贴最新的文件.

我宁愿不必在冲突期间粘贴各种文件.我希望能够保留最新的文件,并基本上删除它们如何变得更简单的命令的历史记录.

编辑:

我正在寻找一个等同于这个bash脚本的Git命令:

for file in `git diff --name-only master foo`
git checkout foo $file
Run Code Online (Sandbox Code Playgroud)

git github

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

标签 统计

git ×1

github ×1

python ×1